查询生成器。同时Where()和With()方法

时间:2019-04-20 18:00:24

标签: laravel-5.8

HTML表单包含多个我将它们发送到服务器的

$min  = $request->input('min');
$max  = $request->input('max');
$sort = $request->input('sort');

有时输入的值为空,因此,我使用查询生成器:

$q = DB::table('adverts');

if ($request->has('max') && $request->input('max') != ""){
  $q->where('price', "<" , $max)->orderBy($col, $way);
}

但是如果我添加-> with('images'),则会收到错误消息,调用未定义的方法Illuminate \ Database \ Query \ Builder :: with()

 if ($request->has('max') && $request->input('max') != ""){
  $q->where('price', "<" , $max)->with('images')->orderBy($col, $way);
}

1 个答案:

答案 0 :(得分:0)

您不能将with()DB类一起使用,with()应用于Eloquent Builder。

示例:$books = App\Book::with(['author', 'publisher'])->get();

如果要使用DB构建器,则必须使用joins来加载相关数据。