如何在使用预先加载时 select 模型中的特定列:laravel
How to select specific column from model while using eager loading : laravel
我已经使用预先加载成功检索了如下数据:
$var = Question::with(['asker'=>function($query){
$query->select('id','username');
}])->get();
问题是我无法从模型中选择特定列 Question
。我尝试了以下方法:
$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
值。
您还需要 select 外键,因此 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'。谢谢你的线索。
我已经使用预先加载成功检索了如下数据:
$var = Question::with(['asker'=>function($query){
$query->select('id','username');
}])->get();
问题是我无法从模型中选择特定列 Question
。我尝试了以下方法:
$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
值。
您还需要 select 外键,因此 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'。谢谢你的线索。