with
Laravel 提供当两个表有关联关系时,在Model层建立关系后,在使用过程总,用 with 把关联关系的数据获取出来。
避坑1:假如我使用了关联表 activity 的数据。
Complaint::filter($params)
->with(['activity' => function($query) {
return $query->select(['title']);
}])
->select(['id', 'pay_order_number', 'user_name', 'handle_type', 'created_at'])
->get();
结果:没有获取到 关联数据 activity,返回null。
原因:指定select
方法字段没有包含作为外键的关联with,意思是你要拉取 activity 相关数据,同时需要把 activity_id 字段获取出来,否则就不要指定字段。
避坑2:假如我加上了,外键 activity_id 字段
Complaint::filter($params)
->