Laravel 中关联模型查询 +with 预加载中 select 必需字段
在用laravel开发时,要关联模型查询和with预加载做统计。因为是统计所以并没有全部查出所有字段的必要。故我在with中用闭包 $query->select('字段名’');但是在查询后结果是null。也就是说关联不上。
为什么呢?我终于在网上找到答案:不管一对一,一对多等等,laravel的关联查询的原理简单来说就是先分别查出模型自身的数据和关联模型的数据,在根据你定义的主键id和外键_id进行关联起来组成查询结果。所以呢,模型自身的数据在select时的必需字段必须要有定义关联是的主键id(或自定义的关联字段),同样,关联模型的数据在select时的必需字段也要有定义关联时的外键_id(或自定义的关联字段).
在with中用闭包时 $query->select('自已想要的字段名'. '定义的关联字段_id');模型自身在->select('至少要有关联的字段id');
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: