У меня есть этот маршрут вызова:
Route::resource('products', 'ProductController', ['except' => ['show']]);
Так что, если я войду /products/438/edit
он вызывает мой метод редактирования на контроллере, это что-то вроде этого:
public function edit(Product $product){}
где $product
это правильно, мой SELECT * FROM products WHERE id = 438
теперь мой вопрос, что если я хочу загрузить отношение, как цены ()
Я пробовал:
$product = $product->with('prices');
а также
$product = Product::find($product->id)->with('prices')
но без успеха.
Спасибо
Вы можете загрузить отношения в уже существующую модель или коллекцию, используя load()
:
$product->load('prices')
Когда вы делаете Product $product
и с помощью контроллера ресурсов, вы просто вводите Product
модель. Итак, измените функцию на:
public function edit(Product $product, $id)
Вы можете загрузить отношения с помощью with()
метод:
$productData = $product->where('id', $id)->with('prices')->first();
Тогда вы сможете получить доступ к ценам примерно так:
@foreach ($productData->prices as $price)
{{ $price->sum }}
@endforeach