我想在nova资源的索引视图中显示以下雄辩
Post::where('frontpage', true)->get()
并执行Post model CRUD操作,该怎么做?
答案 0 :(得分:3)
Nova利用lenses的概念来做到这一点。
从命令行创建新镜头:
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 documentation,还可以自定义URL链接(请参阅uriKey()
)和列(请参见fields()
)。
答案 1 :(得分:2)
您只需覆盖indexQuery
的Nova资源Reference
/**
* 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);
}