假设我有一个模型可以变形许多不同的模型(使用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模型,所以我无法指定任何预先加载的关系。我假设我必须在索引的关系中指定它,但我无法弄清楚如何。我不确定这是否有可能。
答案 0 :(得分:0)
事实证明比我想象的要容易。 似乎指定"与" SampleItem模型上的属性负责:
/**
* The relations to eager load on every query.
*
* @var array
*/
protected $with = ['user'];