FastAdmin关联查询只返回特定字段

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方法的参数是一个数组,可以传值为一个或多个字段的数组,但不能传空数组,不然返回的还是所有字段。

Leave a Comment

豫ICP备19001387号-1