如何在使用预先加载时从模型中选择特定列:laravel

时间:2016-12-21 17:20:14

标签: laravel eager-loading

我已成功使用预先加载检索数据,如下所示:

$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']);

在这两种情况下,选择nullasker时,q_id的值都会返回title

2 个答案:

答案 0 :(得分:3)

您还需要选择外键,因此Eloquent可以找到关系:

$var = Question::with(['asker' => function($query){
    $query->select('id', 'username', 'question_id');
}])->get();

答案 1 :(得分:1)

我必须在从模型中选择数据时包含外键。

$var = Question::select('q_id','title','askedby')->with(['asker'=>function($query){
    $query->select('id','username');
}])->get();

必须包括额外字段'askby'。谢谢你的线索。