Стремительная загрузка по автоматически сгенерированному аргументу в Laravel

У меня есть этот маршрут вызова:

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')

но без успеха.
Спасибо

0

Решение

Вы можете загрузить отношения в уже существующую модель или коллекцию, используя load():

$product->load('prices')

1

Другие решения

Когда вы делаете 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
0

По вопросам рекламы [email protected]