在变形模型上的急切负载关系

时间:2014-10-11 13:03:14

标签: php laravel eloquent laravel-5

假设我有一个模型可以变形许多不同的模型(使用morphTo)。每当模型变形时,我都试图实现这一点,那个变形模型上的所有(或某些)关系也都是急切加载的。

此处的示例代码:http://laravel.io/bin/yLyz7

每当我打电话时:

Index::with('item')->get();

最终会导致像变形这样的查询:

SELECT * FROM sample_items WHERE id IN (?, ?, ?)

这正是我想要的,但我也想在SampleItem模型上急切加载任何关系,这样每次都不会查询每个SampleItem的关系,它也会创建这样的查询。假设SampleItem有一个"用户"关系。

SELECT * FROM users WHERE id IN (?, ?, ?)

有没有办法实现这个目标?因为我自己没有调用SampleItem模型,所以我无法指定任何预先加载的关系。我假设我必须在索引的关系中指定它,但我无法弄清楚如何。我不确定这是否有可能。

1 个答案:

答案 0 :(得分:0)

事实证明比我想象的要容易。 似乎指定"与" SampleItem模型上的属性负责:

/**
 * The relations to eager load on every query.
 *
 * @var array
 */
protected $with = ['user'];