【发布时间】:2022-01-09 12:35:36
【问题描述】:
你好朋友,你能帮我获取$filter的内容吗?我想运行目标列在关系数组中的位置
$filter = $request->get('Biogear');
$data = DetailBarang::with(['barang' => function ($q) use ($filter) {
$q->where('brand', '=', $filter);
}])->get();
return response()->json($data);
【问题讨论】:
-
您可以使用
whereHaslaravel.com/docs/8.x/eloquent-relationships,with将根据过滤器返回null,但不会被过滤掉,因此将 $filter 放到 whereHas 将过滤列表,如果barang返回 null。 -
@Forbidden 感谢您的回复。我已经尝试了您的建议,但我仍然收到错误..您能给我一个示例代码吗?非常感谢你
-
“但我仍然收到错误”...什么错误?
-
你好 @lagbox 感谢您的回复,所以我收到这样的错误
Illuminate\Database\Eloquent\Builder::whereHas(): Argument #2 ($callback) must be of type ?Closure, string given, called in D:\Project\inventory-web\vendor\laravel\framework\src\Illuminate\Support\Traits\ForwardsCalls.php on line 23 -
我已经尝试过了,但是我得到了一个错误 ` $dimensions = DetailBarang::query() ->with('barang') ->whereHas('barang', function ($查询) 使用 ($filter) { return $query->where('brand', 'LIKE', '%' . $filter . '%'); }) ->first() ->barang() ->get (); `
标签: laravel model where-clause laravel-8 eloquent-relationship