如何在使用即时加载时从模型中选择特定列: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语句中。