如何在使用预先加载时 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_idtitle 时为 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'。谢谢你的线索。