Для изменения установить свойства $sortBy и $sortDirection в компоненте.
app/Http/Livewire/Admin/News/NewsList.php
<?php
namespace App\Http\Livewire\Admin\News;
use WebVovan\RockCms\Http\Livewire\ResourceListComponent;
class NewsList extends ResourceListComponent
{
// Поле для сортировки
public string $sortBy = 'title';
// Направление сортировки
public string $sortDirection = 'acs';
...
}
Количество ресурсов на странице
По умолчанию выводится 10 ресурсов на странице.
Для изменения установите свойство $perPage.
app/Http/Livewire/Admin/News/NewsList.php
<?php
namespace App\Http\Livewire\Admin\News;
use WebVovan\RockCms\Http\Livewire\ResourceListComponent;
class NewsList extends ResourceListComponent
{
// Количество ресурсов на странице [5, 10, 15]
public int $perPage = 10;
...
}
Пользовательские обработчики сортировки
Для настройки собственных обработчиков для сортировки полей используйте метод setSortHandlers().
app/Http/Livewire/Admin/News/NewsList.php
<?php
namespace App\Http\Livewire\Admin\News;
use WebVovan\RockCms\Http\Livewire\ResourceListComponent;
class NewsList extends ResourceListComponent
{
...
/**
* Установка обработчиков для сортировки
*
* @return array
*/
public function setSortHandlers(): array
{
return [
'title' => fn($builder, string $sortBy, string $sortDirection) => $builder->orderByTranslation($sortBy, $sortDirection),
];
}
...
}
Пользовательские обработчики поиска
Если в свойстве $search указаны поля, которые загружаются через отношения, то для поиска по ним нужно добавить собственные функции в методе setSearchHandlers().
app/Http/Livewire/Admin/News/NewsList.php
<?php
namespace App\Http\Livewire\Admin\News;
use WebVovan\RockCms\Http\Livewire\ResourceListComponent;
class NewsList extends ResourceListComponent
{
...
/**
* Установка обработчиков для поиска
*
* @return array
*/
public function setSearchHandlers(): array
{
return [
'title' => fn($builder, string $field, string $searchWord) => $builder->whereTranslationLike($field, '%' . $searchWord . '%'),
];
}
}
Это может быть полезно если, к примеру, сайт мультиязычный и все переводы модели хранятся в отдельной таблице (как это реализовано в пакете ). В таком случае не получится просто отсортировать ресурсы по полю title и нужно будет использовать метод сортировки от создателей пакета.
Ниже пример поиска по полю с мультиязычным заголовком (используется пакет ).