如何進行關(guān)聯(lián)查詢,自帶的 CRUD 不滿足業(yè)務(wù)需求時,需要自己重寫對應(yīng)的方法嗎?有什么需要注意的。
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');
}
或者其它方法。
控制器需要重寫select
方法, 另外doSelect
和doFormat
都可以根據(jù)業(yè)務(wù)需要重寫
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');
}