Laravel Admin 多表联查:订单、产品和商户信息展示与筛选
可以使用 Laravel 的 Eloquent 关系查询来实现多表联查,具体代码如下:/n/nphp/nuse Encore//Admin//Controllers//AdminController;/nuse Encore//Admin//Grid;/nuse App//Models//Order;/n/nclass OrderController extends AdminController/n{/n protected function grid()/n {/n $grid = new Grid(new Order);/n/n $grid->column('id', 'ID');/n $grid->column('p_id', 'Product')->display(function ($p_id) {/n return //App//Models/Product::find($p_id)->'p_name';/n });/n $grid->column('m_id', 'Mina')->display(function ($m_id) {/n return //App//Models/Mina::find($m_id)->'m_name';/n });/n $grid->column('created_at', 'Created at')->sortable();/n/n $grid->filter(function ($filter) {/n $filter->column(1 / 4, function ($filter) {/n $filter->like('id', 'Order ID');/n });/n $filter->column(1 / 4, function ($filter) {/n $filter->equal('p_id', 'Product ID')->select(//App//Models/Product::pluck('p_name', 'id'));/n });/n $filter->column(1 / 4, function ($filter) {/n $filter->equal('openid')->select(//App//Models/Order::select('openid')->distinct()->pluck('openid', 'openid'));/n });/n });/n/n return $grid;/n }/n}/n/n/n在上面的代码中,我们使用了display方法来显示关联表中的字段,使用了filter方法添加了 3 个筛选条件,其中equal方法用于添加下拉框筛选条件,并使用了 Eloquent 的pluck方法来获取对应表中的字段值列表。最后,在控制器的grid方法中返回$grid对象即可。
原文地址: https://www.cveoy.top/t/topic/mlRl 著作权归作者所有。请勿转载和采集!