fastadmin可以方便的让我们在后台展示信息,很多时候我们需要展示关联表的信息。我们可以在controller文件里,添加这样的信息
protected $model = null;
protected $relationSearch = true;
protected $relationWith = 'user';
然后在index方法里,增加with相关代码
public function index()
{
$this->request->filter(['strip_tags', 'trim']);
if ($this->request->isAjax()) {
if ($this->request->request('keyField')) {
return $this->selectpage();
}
$with = $this->relationSearch && $this->relationWith ? $this->relationWith : '';
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
$list = $this->model
->where($where)
->with($with)
->order($sort, $order)
->paginate($limit);
$result = array("total" => $list->total(), "rows" => $list->items());
return json($result);
}
return $this->view->fetch();
}
然后我们需要到模型中,增加对应的模型关联
public function user()
{
return $this->hasOne(User::class, 'id', 'user_id');
}
这里的hasOne或者belongsTo根据自己的情况来写就行。处理完后,就可以自动获取对于的用户信息了。
如果还需要把用户的手机号或者其他的信息作为查询条件的话,一般来说就会报错了。我们可以修改上面的关联语句为这样
public function user()
{
return $this->hasOne(User::class, 'id', 'user_id')->setEagerlyType(0);
}