使用下面的查询查询我的数据库;
Model::with('first','second','third','fouth','fiveth')
->orderBy('title')
->remember(2,'domain.query')
->get()
整体查询会被缓存等,但为什么不关联我附加到查询的关系。我是否必须在模型等上加入以完成所有缓存等操作?
发条中的查询:
SELECT * FROM `first_table` WHERE `first_table`.`id` in ('2', '4', '3')
SELECT * FROM `second_table` WHERE `second_table`.`id` in ('2', '5', '1', '4')
SELECT * FROM `third_table` WHERE `third_table`.`id` in ('2', '5', '1', '4')
SELECT * FROM `fouth_table` WHERE `fouth_table`.`id` in ('2', '5', '1', '4')
SELECT * FROM `fiveth_table` WHERE `fiveth_table`.`id` in ('2', '5', '1', '4')
答案 0 :(得分:0)
“为什么”在某种程度上是一个广泛的问题,它是由框架作者做出的设计决策。绕过它的方法,虽然它不是非常漂亮的代码,但是使用急切的负载约束:
Model::with([
'first' => function($q) { $q->remember(...); },
'second' => ...
])->remember(...)->get();