У меня проблема с получением данных из базы данных на основе отношений hasMany и отправкой их в api в Larave. Ниже кода Laravel не дает мне продукт клиента, где идентификатор клиента = $ id. Не знаю почему, я не могу отправить $ id рядом с $ query. Если я напишу номер в поле «У меня хороший ответ, но мне нужно взять его автоматически».
$products = Product::where('name', 'like', '%'.$request->q.'%')->orWhere('symbol', 'like', '%'.$request->q.'%')->with(['customers' => function ($query, $id) {
$query->where('id', '=', $id);
}])->get();
весь код API
Route::get('/customer/{id}/products', function(Request $request, $id){
$customer = Customer::findOrFail($id);
$products = Product::where('name', 'like', '%'.$request->q.'%')->orWhere('symbol', 'like', '%'.$request->q.'%')->with(['customers' => function ($query, $id) {
$query->where('id', '=', $id);
}])->get();
return $products;
});
Заранее спасибо.






Если вы хотите использовать переменную внутри метода with, вы должны ввести use($id) после function($query), как этот код ниже.
$products = Product::where('name','like','%'.$request->q.'%')
->orWhere('symbol', 'like', '%'.$request->q.'%')
->with(['customers' => function ($query) use($id) {
$query->where('id', '=', $id);
}])->get();
Если вам нужно найти продукт с этими условиями Клиенты, вы можете использовать функцию whereHas. Проверьте этот Почта для получения дополнительной информации.
Хорошо, я новичок, поэтому я не знал о accept, извините.
Ничего особенного. Просто примите ответ, чтобы другие могли увидеть результат. Спасибо