phppage类封装分页功能_封装layPaginate分页工具类

封装layPaginate分页工具类thinkphp自带的paginate分页有时返回的参数会不满足自己的需求,可以重写封装trait分页类

1.封装

LayTrait.php 位置随意改,不过要记得修改命名空间路径

namespace app\common\third\miaoyin;

use think\Request;

trait LayTrait

{

/**

* author Lijy

* date 2020/8/1

* 分页方法

* @param Request $request

* @param $model

* @param null $callback

* @return array

*/

protected static function layPaginate(Request $request, $model, $callback = null)

{

$data = self::layPaginateFormat(self::layTablePaginate($request, $model));

if ($callback instanceof \Closure) {

$data['data'] = $callback($data['data']);

}

return $data;

}

/**

* author Lijy

* date 2020/8/4

* 分页查询

* @param Request $request

* @param $model

* @return mixed

*/

protected static function layTablePaginate(Request $request, $model)

{

$limit = $request->param('limit', 10);

$config['page'] = $request->param('page', 1);

return $model->paginate($limit, false, $config);

}

/**

* author Lijy

* date 2020/8/4

* @param $data

* @return array

*/

protected static function layPaginateFormat($data)

{

return [

'total' => $data->total(),

'pageSize' => $data->listRows(),

'pageNum' => $data->currentPage(),

'lastPage' => $data->lastPage(),

'list' => $data->toArray()['data'],

];

}

}

2.控制器Base基础类文件中引用

namespace app\live\controller;

use app\common\third\miaoyin\LayTrait;

use think\App;

use think\facade\Config;

use think\facade\Request;

/**

* 控制器基础类

*/

abstract class Base

{

use LayTrait;

}

3.调用控制器中调用示例

declare (strict_types=1);

namespace app\admin\controller;

class Index

{

public function index()

{

try {

$roomId = $request->get('roomId');

$model = AdvertLogic::getAdvertList($roomId);

$res = self::layPaginate($request, $model);//分页

return successResponse(['data' => $res]);

} catch (\Exception $e) {

return failResponse($e->getMessage(), $e->getCode());

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值