Query
Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.
# Filter
Часто необходимо изначально отфильтровать выдачу со списком записей.
В целом, вы можете легко переопределить query builder в ресурсе.
namespace MoonShine\Resources; use Illuminate\Contracts\Database\Eloquent\Builder; class PostResource extends Resource{ //... public function query(): Builder { return parent::query() ->where('active', true); } //...}
# Order
Переопределив метод performOrder()
можно кастомизировать сортировку элементов.
namespace MoonShine\Resources; use Illuminate\Contracts\Database\Eloquent\Builder; class PostResource extends Resource{ //... public function performOrder(Builder $query, string $column, string $direction): Builder { return $query->orderBy( $column, $direction ); } //...}
# Scopes
В Laravel также есть удобный функционал scopes, и его как раз можно применять в рамках админ-панели MoonShine.
Для начала необходимо создать нужные scopes.
php artisan make:scope ActiveUserScope
namespace MoonShine\Resources; use App\Models\Scopes\ActiveUserScope; class PostResource extends Resource{ //... public function scopes(): array { return [ new ActiveUserScope() ]; } //...}