如何在laravel 10.x中更改分页

oyxsuwqo  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(96)

我可以用代码指定每页返回多少条记录:

$payments = Payment::paginate(10);

字符串
或者,例如,我可以用下面的代码为用户做同样的事情:

$users = User::paginate(10);


如果明天我想把数字10改成50,灾难就会发生。
如何在设置中全局更改这个数字?(代码越灵活,结构越好,我就越高兴:))
我尝试过很多次
例如在路径app/config中创建pagination.php文件,其中包含以下内容:

<?php

return [
    'per_page' => 1,
];


或者将文件AppServiceProvider.php更改为以下内容:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Pagination\Paginator;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     */
    public function register(): void
    {
        //
    }

    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        Paginator::perPage(1);
    }
}

relj7zay

relj7zay1#

据我所知,没有办法全局设置分页号。正如你所注意到的,仅仅创建一个配置设置而不做任何其他事情是不起作用的。
但是,如果您创建一个名为config/pagination.php的新配置文件,并包含以下内容:

<?php

return [
    'per_page' => 1,
];

字符串
然后,您可以使用以下命令:

$payments = Payment::paginate(config('pagination.per_page'));
$users = User::paginate(config('pagination.per_page'));


这允许您全局设置分页计数!

dced5bon

dced5bon2#

您可以设置.env变量为每页值,并随时更新它。首先,在config目录中创建一个pagination.php文件:

return [
    'per_page' => env('PAGINATION_PER_PAGE', 15),
];

字符串
使用它:

$payments = Payment::paginate(config('pagination.per_page'));
$users = User::paginate(config('pagination.per_page'));


.env中:

PAGINATION_PER_PAGE=10


不要忘记运行php artisan config:clear来清除缓存。
你可以简单地通过代码改变这个变量:config(['pagination.per_page' => 50]);

相关问题