laravel-admin小技巧$grid显示序号和下级数量统计数字
通过ID查询食材数只能通过display,但是如果$grid如果有ID列,会和该列冲突,会导致id列和该列的统计数一样。ID消失。因此我想试试不现示ID换成序号。这样还真的完美实现。
代码如下:
Admin/FoodController.php
protected function grid()
{
$grid = new Grid(new CookFoods());
$grid->number('序号');
$grid->column('food_name','菜名');
$grid->column('description','描述');
$grid->column('tags','标签');
$grid->column('id','食材数')->display(function ($id){
return CookFoodCuisines::where('food_id','=',$id)->count();
})->style('text-align:center');
$grid->column('created_at', __('Created at'));
$grid->column('updated_at', __('Updated at'));
$grid->rows(function ($row,$number){
$row->column('number',$number+1);
});
return $grid;
}
以供学习使用laravel-admin的伙伴儿学习参考。
本作品采用《CC 协议》,转载必须注明作者和本文链接
这样搞可能会造成n+1问题
正如楼上说的, 你可以想像你有二十条数据, 那么就会执行二十次
CookFoodCuisines::where('food_id','=',$id)->count()
更好的做法是模型定义好关联关系