webman-admin 插件如何多表关联查询

Best

问题描述

如何进行关联查询,自带的 CRUD 不满足业务需求时,需要自己重写对应的方法吗?有什么需要注意的。

public function select(Request $request): Response
{
    [$where, $format, $limit, $field, $order] = $this->selectInput($request);
    $query = $this->doSelect($where, $field, $order);
    return $this->doFormat($query, $format, $limit);
}
public function insert(Request $request): Response
{
    if ($request->method() === 'POST') {
        return parent::insert($request);
    }
    return view('department/insert');
}

或者其它方法。

953 1 2
1个回答

leedom

控制器需要重写select方法, 另外doSelectdoFormat都可以根据业务需要重写

public function select(Request $request): Response
    {
        [$where, $format, $limit, $field, $order] = $this->selectInput($request);
        if (!empty($where['name']) && is_string($where['name'])) {
            $where['name'] = ['like', "%{$where['name']}%"];
        }
        $query = $this->doSelect($where, $field, $order);
        $query = $query->with(['user' => function($q){
            $q->select('nickname','id');
        }]);
        return $this->doFormat($query, $format, $limit);
    }

模型文件

public function user()
{
    return $this->hasOne('App\Models\User');
}
年代过于久远,无法发表回答
🔝