Laravel 5.1 запрашивает коллекцию внутри шаблона блейда

В моем шаблоне блейда у меня есть следующая коллекция $questions

Collection {
  #items: array:2 [
    0 => Question {
      ....
      #attributes: array:7 [
        "survey_id" => 3
        "question_num" => 0
        "question_text" => "test"
        "expected_answer" => 1
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
      ]
    }
    1 => Question {#318 ▶}
  ]
}

Чтобы проверить, существует ли question_num, я могу сделать следующее:

 @foreach ($questions as $question) {
     @if ($question->question_num == 0)
       {{ $question->question_text }}
     @endif 
 @endforeach

Однако есть ли способ сделать что-то подобное, чтобы я мог запрашивать коллекцию напрямую, не используя цикл?

 {{ $questions->where('question_num','=', 0)->get('question_text', null) }}   

Применение метода where $questions->where('question_num','=', 0) дает мне следующий результат:

[{"survey_id":3,"question_num":0,"question_text":"test","expected_answer":1,"created_at":"2016-02-28 14:20:17","updated_at":"2016-02-28 14:20:17"}] 

Итак, почему он возвращает значение null, когда я связываю метод get ->get('question_text', null)


person adam78    schedule 27.02.2016    source источник
comment
laravel.com/docs/5.1/collections#method-filter   -  person KoIIIeY    schedule 28.02.2016
comment
Почему метод get не работает?   -  person adam78    schedule 28.02.2016


Ответы (1)


Вместо этого используйте метод first(). В Laravel get() возвращает массивную коллекцию

person Neo Ighodaro    schedule 29.02.2016