Установить глобальное $ pageName в нумерации страниц Laravel - PullRequest
0 голосов
/ 10 октября 2019

Мы можем использовать пользовательский $ customPageName в третьем параметре paginate () функции laravel. Благодаря этому мы можем использовать site.com/url?$customPageName= п. Есть ли способ, которым мы можем установить пользовательское имя страницы глобально? В AppServiceProvider или где-то в этом роде? Так что нам не нужно каждый раз определять?

1 Ответ

0 голосов
/ 10 октября 2019

Есть много возможных решений. Я даю вам два, которые IMO являются лучшими:

1: Создать черту и использовать ее в каждом компоненте

Я люблю использовать черты, они избегают большого количества избыточности и могут быть легко вызванывезде:

trait PaginationTrait
{
    const PAGE_NAME = 'your_global_value'

    public function paginate($query, $perPage, $columns = [''], $page_name = null)
    {
        return $query->paginate($perPage, $columns, $page_name ?: self::PAGE_NAME);
    }
}

Это решение в любом случае требует, чтобы вы передали в качестве входных данных экземпляр Builder, и может вызвать проблемы с логикой. Итак, давайте перейдем к следующему решению

2: файлы конфигурации

Просто установите переменную в существующем файле конфигурации или в новом файле конфигурации:

// Example: app.php

return [
    // [...]

    'page_name' => 'your_custom_value' // or env('APP_PAGE_NAME', 'your_custom_value'),

    // [...]
];

И вВаш контроллер вы можете получить значение следующим образом:


    public function index() {
         // [...]

         $result = MyModel::paginate($per_page, $columns, config('app.page_name'));
    }

3: App \ Http \ Controllers \ Controller

Третье решение является самым простым. Установите константу в вашем App\Http\Controllers\Controller классе (как я писал для части черты) и по правилам ООП она будет наследоваться всем вашим контроллерам:

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

    const PAGE_NAME = 'your_global_value';
}

И в вашем контроллере:


    public function index() {
         // [...]

         $result = MyModel::paginate($per_page, $columns, self::PAGE_NAME);
    }

По моему мнению, если вам просто нужно установить эту глобальную переменную, решения 2 и 3 являются лучшими ... Если вам нужно создать пользовательскую нумерацию страницлогика, тогда я думаю, что создание определенной Черты или Класса - хороший выбор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...