准备工作:分别创建两个模型:users和orders
users模型:
orders模型:
操作:(注意在控制器中引入需要用到的模型)
(1).多表查询:一对多
读取orders的那一句可以优化成:
(2).多表查询:一对一
关联查询的性能问题:
1.释放缓存:由于关联查询的结果会被缓存,再次查询的时候需要释放缓存:unset($orders);
2.例如:如果要读取多个用户的所有的订单(多次关联查询),会导致查询性能的急速下降;这时候,使用with()方法,将可以大幅提高性能:
注释:with('orders')方法会将查询到的结果存放在一个临时创建的orders表中,当程序继续往下执行循环查询的时候,会将这个循环查询转换成sql中的in查询,大幅提高了查询效率。