我在尝试着
1. select `DOS`,`name`,`fin`,`ins_type` from events table.
2. site_name from sites table
3. client_name from clients table
但无法访问select语句中的site_name,client_name列
->select('DOS','name','fin','ins_type')
如何在上面的select语句中添加这些列 site.site_name
, client.client_name
.
雄辩的查询是
$events = Event::with([
'site'=>function($q){
$q->select('site_id','site_name','client_id');
},
'site.client'=>function($q2){
$q2->select('client_id','client_name');
}])
->select('DOS','name','fin','ins_type')
->get();
3 回答
这个怎么样?
我在here的评论部分找到了一个简单的解决方案 . 可以将列选择放在模型中 . 所以在你的情况下,你的事件模型可能是这样的 .
然后,在您的控制器中,您只需调用该功能 .
我还没有尝试过如何使用嵌套的eager loading .
我自己也遇到了一些问题,直到我发现你需要将外键添加到“with”闭包内的select语句中 .
将“client”与“site”和“site”关联到“Event”的列