哪里和哪里没有雄辩的地方

时间:2020-06-30 16:48:16

标签: php laravel eloquent

$classes = Classes::all();
if (!empty($request) and $request->search != null)
    $classes = $classes->where('class_name', 'like', '%' . $request->search . '%')
        ->orWhere('class_number', 'like', '%' . $request->search . '%');

不好的方法调用说,这里和哪里都不有效。有人可以帮我吗?

1 个答案:

答案 0 :(得分:4)

$classes当前是一个Collection,而不是QueryBuilder对象。将完整查询添加到if块,然后将默认值移动到else,例如:

if (!empty($request) and $request->search != null) {
    $classes = Classes::where('class_name', 'like', '%' . $request->search . '%')
        ->orWhere('class_number', 'like', '%' . $request->search . '%')
        ->get();
} else {
    $classes = Classes::all();
}