2015-07-22 4 views
0

У меня есть простой красноречивый запрос:Laravel: get() возвращающий массив?

$comments = Comment::where('approved',1)->orderBy('created_at','desc')->get(); 

return view('comments.approved', compact('comments')); 

Я пытаюсь получить доступ к данным в поле зрения, используя следующий синтаксис

@foreach($comments as $comment) 

{{ $comment->content }} 

@endforeach 

я получаю следующую ошибку

Trying to get property of non-object (View: ... 

I смог решить проблему любым из этих

{{ @$comment->content }} 
or 
{{ $comment['content'] }} 

Однако я не понимаю, почему get() возвращает массив вместо коллекции. Разве get() не возвращает коллекцию объектов?

ответ

2

PHP компактный() делает это, согласно http://php.net/manual/en/function.compact.php

Creates an array containing variables and their values. 

Так вы изменяете его в массив, как вы передаете его к вашему мнению. Попробуйте, не используя compact(), и посмотрите, получишь ли вы ответ, который вы ожидаете.

return view('comments.approved', ['comments' => $comments]); 
Смежные вопросы