Laravel5 Eloquent方法所有返回意外结果

时间:2016-02-07 18:46:01

标签: php laravel laravel-5 eloquent

我正在努力学习Laravel,我真的很喜欢它,直到我被难倒!

我创建了一个名为suggestions的表格,并用一些假数据播种。

看起来像这样:

enter image description here

我有一个名为Suggestion.php的模型文件,其中包含以下代码:

<?php
 namespace App;

 use Illuminate\Database\Eloquent\Model;

 class Suggestion extends Model
 {
 //
 }

在我的routes.php文件中,我有这个:

use App\Suggestion;
Route::get('/', function () {
   $suggestions = Suggestion::all();
   return '<pre>' . var_dump($suggestions) . '</pre>';
});

我希望在我的数据库中获得一系列记录,但我得到一个Illuminate\Database\Eloquent\Collection对象,它有两个数组,一个macros数组,一个items数组。 var_dump的开头看起来像这样:

enter image description here

我想要访问的数据实际上显示在attributes数组中,但这似乎不是Laravel应该如何工作的。

这让我很困惑,因为我一直在尝试遵循一些教程(like this one),而且似乎我应该得到一个我可以循环的简单集合。

我确实对这个问题进行了一些研究,但我找到了其他Stack Overflow帖子,例如this one,但它并没有真正解决我的问题。

我有点想到我以某种方式搞砸了我的建议模型或没有正确地做到这一点,但除此之外,我迷失了。

提前致谢,您可以给我任何指导。我实际上打算使用Controller和View,但为了简单起见我在这里提出问题,我将必要的代码放在routes文件中。

1 个答案:

答案 0 :(得分:4)

  

雄辩的方法,如all和get,它可以检索多个结果,a   将返回Illuminate \ Database \ Eloquent \ Collection的实例。   Collection类提供了各种有用的工作方法   用你雄辩的结果。当然,你可能只是循环这个   像数组一样的集合

from the docs

所以你是雄辩的回归集合。

文档中有一节如何使用它https://laravel.com/docs/5.2/collections