如何在使用即时加载时从模型中选择特定列:laravel
我已使用以下方式成功检索数据:如何在使用即时加载时从模型中选择特定列:laravel,laravel,eager-loading,Laravel,Eager Loading,我已使用以下方式成功检索数据: $var = Question::with(['asker'=>function($query){ $query->select('id','username'); }])->get(); $var = Question::select('q_id','title')->with(['asker'=>function($query){ $query->select('id','usern
$var = Question::with(['asker'=>function($query){
$query->select('id','username');
}])->get();
$var = Question::select('q_id','title')->with(['asker'=>function($query){
$query->select('id','username');
}])->get();
$var = Question::with(['asker'=>function($query){
$query->select('id','username');
}])->get(['q_id','title']);
问题是,我无法从模型问题
中选择特定列。我尝试了以下方法:
$var = Question::with(['asker'=>function($query){
$query->select('id','username');
}])->get();
$var = Question::select('q_id','title')->with(['asker'=>function($query){
$query->select('id','username');
}])->get();
$var = Question::with(['asker'=>function($query){
$query->select('id','username');
}])->get(['q_id','title']);
在这两种情况下,当选择
q_id
和title
时,它为asker
返回null
值。您还需要选择外键,以便Eloquent可以找到关系:
$var = Question::with(['asker' => function($query){
$query->select('id', 'username', 'question_id');
}])->get();
在从模型中选择数据时,我必须包含外键
$var = Question::select('q_id','title','askedby')->with(['asker'=>function($query){
$query->select('id','username');
}])->get();
必须包含额外字段“askedby”。谢谢你的提示。你的问题模型是什么样子的?查看问题与提问者之间的关系可能会有所帮助。对于关系,您是否得到
null
?如果你拆下盖子,它能工作吗?question\u id
外键的名称正确吗?是的,关系为空,它可以工作,askedby是外键。谢谢你的努力。所以,你实际上没有尝试我的代码,但说它不起作用<代码>为问题选择
,模型已删除,因此我的代码应该可以正常工作。不是真的。我尝试了,然后在表中找不到声明为askedby的错误(我也尝试了另一个键),然后考虑将其包含在select语句中。