2016-12-21 3 views
1

Я успешно полученные данные с помощью жадной загрузки следующим образом:Как выбрать конкретный столбец из модели при использовании жадной загрузки: Laravel

Проблема заключается в том, что я не могу выбрать определенные столбцы из модели 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']); 

В обоих случаях возвращается null значение для asker при выборе q_id и title.

+0

Как выглядит ваша модель вопроса? Возможно, было бы полезно увидеть взаимосвязь между вопросом и вопросом. –

ответ

0

я должен был включать внешний ключ при выборе данных из модели.

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

Дополнительное поле «askby» должно быть включено. Спасибо за подсказку.

+0

Итак, вы на самом деле не пробовали мой код, но сказали, что он не работает. 'select' для' Question' был удален, поэтому мой код должен работать. –

+0

не очень. Я попробовал тогда ошибку, указанную как запрошенный, не найден в ТАБЛИЦЕ (я также пробовал другой ключ), а затем подумал о включении в инструкцию select. – uttejh

1

Вы также должны выбрать внешний ключ, так Eloquent может найти соотношение:

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

не работает – uttejh

+0

Вы получаете 'null' за отношение? Это работает, если вы удалите закрытие? Правильно ли имя 'question_id' имени внешнего ключа? –

+0

Да нуль для рационализации, и это работает, а askby - это внешний ключ. Спасибо за попытку. – uttejh