Laravel:get()返回数组?

时间:2015-07-22 13:26:54

标签: laravel laravel-5

我有一个简单的雄辩查询:

$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: ...

我能够通过其中任何一个解决问题

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

但是,我无法理解为什么get()返回数组而不是集合。 get()是不是要返回对象的集合?

1 个答案:

答案 0 :(得分:2)

PHP compact()根据http://php.net/manual/en/function.compact.php

执行此操作
Creates an array containing variables and their values. 

因此,当您将其传递给视图时,您将其更改为数组。尝试不使用compact(),看看你是否得到了你期望的响应。

return view('comments.approved', ['comments' => $comments]);