FastAdmin后台控制器在进行关联查询时,默认是把所关联表的所有字段都返回的,这样有一定的风险,有时我们不想在接口里返回那么多信息。
比如下面的代码:
$list = $this->model
->with(['user'])
->where($where)
->order($sort, $order)
->limit($offset, $limit)
->select();
接口是会把user
表的所有字段一并返回的,如果只想显示某一个或几个字段,可以对list做下处理:
foreach ($list as &$v) {
// user表只显示昵称
$v->getRelation('user')->visible(['nickname']);
}
unset($v);
visible
方法的参数是一个数组,可以传值为一个或多个字段的数组,但不能传空数组,不然返回的还是所有字段。