fastadmin后台订单管理页面显示出订单分类,即关联再关联
例如:成交记录管理页面,需显示产品和产品分类,产品通过good_id关联good表,产品分类通过good表的category_id关联category表获取name
1,定义关联关系
1.1 Good 模型(app/admin/model/Good.php),添加与分类表的关联:
php
// 关联分类表(category)
public function category()
{
// 注意此处field必须
return $this->belongsTo('app\common\model\Category', 'category_id', 'id', [], 'LEFT')->field('id,name,type,flag');
}
1.2 AccountOrder 模型(成交记录模型)
在 app/admin/model/AccountOrder.php中添加与商品模型的关联:
php
// 关联商品表
public function good()
{
return $this->belongsTo('app\admin\model\Good', 'good_id', 'id', [], 'LEFT')->with('category');
}
2, 控制器查询时加载关联
在成交记录对应的控制器(app/admin/controller/AccountOrder.php)中,修改 index 方法,确保关联数据被加载:
php
// 查询并预加载关联
$list = $this->model
->with(['good']) // 关键:加载 good 关联(自动连带 good.category)
->order($sort, $order)
->paginate();
3,在 JS 文件中定义列表列
打开 public/assets/js/backend/account_order.js,在 columns 数组中添加以下两个新列:
js
// 原有的 columns 中增加
{field: 'good.name', title: __('产品'), operate: 'like', align: 'center'},
{field: 'good.category.name', title: __('产品分类'), operate: 'like', align: 'center'},