如何在多个级别上加载关系?

时间:2017-01-10 07:52:02

标签: laravel eloquent eager-loading

我有以下型号:

ProductA - ProductB - 功能 - 选项

我有以下关系:

ProductA belongsToMany ProductB ProductB属于许多功能 功能属于多个选项

当我想查看ProductA的详细信息时(带有ProductA id的帖子,将由控制器管理)我希望加载所有关系 将包含所有细节的变量传递给视图。

是否可以使用单个Eloquent指令?

这样的事情(我知道它不起作用):这是正确的方法吗?

$prodcutDetails = ProductA->with('product_b')->with('features')->with('option')->find($id);

由于

2 个答案:

答案 0 :(得分:1)

您可以使用点符号来激发关系的负载关系。像这样:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

答案 1 :(得分:0)

@Jerodev给出了一个很好的答案,但多重关系是多余的;使用$prodcutDetails = ProductA::with('product_b.features.option')->find($id);会更有效率,您仍然可以访问product_bproduct_b.features