渴望加载一些属性

时间:2016-05-28 18:29:46

标签: laravel laravel-5 eloquent laravel-5.2

我有两个模型:QuestionAnswer。一个问题有很多答案。要急切地加载问题的答案,必须这样写:

$question->load('answers');

但是,所有答案的属性都是以这种方式加载的。以下代码虽然说明了我想要实现的目标,但却无效:

$quesiton->load('answers')->select('id', 'body')

那么,我如何只用各自的idbody属性来加载问题的答案?

2 个答案:

答案 0 :(得分:2)

你应该试试这个:

$question->load(['answers' => function ($query) {
    $query->select('id', 'body', 'question_id');
}]);

如您所见,仅加载idbody可能还不够。假设您拥有Answer模型question_id字段,则还应在select中指定该字段,否则不会将答案分配给问题。

答案 1 :(得分:1)

使用冒号指定列也有效:

$question->load('answers:id,body');
相关问题