Отображение конкретного красноречивого запроса в представлении индекса ресурса nova - PullRequest
0 голосов
/ 22 декабря 2018

Я хочу отобразить следующее красноречивое в индексном представлении для ресурса nova

Post::where('frontpage', true)->get()

И выполнить операции CRUD после модели, как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018

Вы можете просто переопределить indexQuery вашего ресурса Nova, Ссылка

/**
 * Build an "index" query for the given resource.
 *
 * @param  \Laravel\Nova\Http\Requests\NovaRequest  $request
 * @param  \Illuminate\Database\Eloquent\Builder  $query
 * @return \Illuminate\Database\Eloquent\Builder
 */
public static function indexQuery(NovaRequest $request, $query)
{
    return $query->where('frontpage', true);
}
0 голосов
/ 23 декабря 2018

Nova использует концепцию линз для этого.

Создайте новый объектив из командной строки:

php artisan nova:lens IsFrontpage

Измените метод query() вapp/Nova/Lenses/IsFrontpage.php:

public static function query(LensRequest $request, $query)
{
    return $request->withOrdering($request->withFilters(
        $query->where('frontpage', '=', true)
    ));
}

Прикрепите объектив к ресурсу:

public function lenses(Request $request)
{
    return [
        new IsFrontpage()
    ];
}

Доступ к объективу на панели администратора Nova: /nova/resources/posts/lens/is-frontpage

Подойдите поближепосмотрите документацию Nova , чтобы также настроить слаг URL (см. uriKey()) и столбцы (см. fields()).

...