业务场景
我们在使用fastadmin时经常会碰到关联信息展示和搜索的情况,最典型的就是数据展示的时候,例如订单数据需要展示用户的用户名,并且还需要能搜索,下面以此为例讲一下注意事项
代码注意
一般来说,我们需要处理一下模型关联,在订单模型中,增加belongsTo的关联模型,代码如下
public function user()
{
return $this->belongsTo(User::class, 'user_id', 'id',[],'LEFT')->setEagerlyType(0);
}
这里比普通的模型关联增加了一些参数。
然后我们的index方法中,要额外增加with参数,代码如下
$list = $this->model
->where($where)
->with('user')
->order($sort, $order)
->paginate($limit);
这样我们才能在列表中渲染user的相关字段
其他注意
有时候因为订单表和用户表存在相同的字段,会导致错误,这里我们需要在订单的controller文件中,增加一行代码
protected $relationSearch = true;