1

我有这个路由调用:

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

但没有成功。谢谢

4

2 回答 2

6

您可以使用以下方法将关系加载到现有模型或集合load()

$product->load('prices')

于 2016-10-27T09:13:57.793 回答
0

当你在做Product $product和使用资源控制器时,你只是在注入Product模型。因此,将函数更改为:

public function edit(Product $product, $id)

您可以使用 ofwith()方法急切加载关系:

$productData = $product->where('id', $id)->with('prices')->first();

然后,您将能够通过以下方式访问价格:

@foreach ($productData->prices as $price)
    {{ $price->sum }}
@endforeach
于 2016-10-27T09:14:08.107 回答