【问题标题】:Laravel 5 Eloquent Model ResultsLaravel 5 Eloquent 模型结果
【发布时间】:2017-09-13 22:54:53
【问题描述】:

我正在使用 eloquent 模型从数据库中检索数据。我的查询

$tests_details = Previous_Mocks::where($data)->orderBy('sno', 'desc')->get();

据我所知,$tests_details 将返回对象数组(结果),但是当我回显 is_array($tests_details) 时,它返回 false,这意味着它不是一个数组,但是当我回显 count($test_details) 时,它显示了正确的计数。见下面的代码

foreach ($tests_details as $td)
                {
                    echo is_object($td);
                    echo "<br/>";
                }

它正在为is_object($td) 返回 1。当我使用print_r 打印$tests_details 时,下面的函数是我得到的输出

什么时候 echo $tests_details[0]-&gt;edate 显示正确的输出并且一切正常。但我想知道为什么 eloquent 以图像中显示的格式而不是普通对象返回数据。我是 laravel 的新手,目前使用 laravel 5.0,任何解释都可以理解。

【问题讨论】:

  • @Mayanak 非常清楚地解释了您的问题。但是,如果您希望将结果作为数组,请尝试 $tests_details = Previous_Mocks::where($data)->orderBy('sno', 'desc')->toArray();

标签: php database laravel-5 eloquent


【解决方案1】:

Previous_Mocks模型返回的数据是一个集合对象。

Eloquent 返回的所有多结果集都是 Illuminate\Database\Eloquent\Collection 对象,包括结果 通过 get 方法检索或通过关系访问。这 Eloquent 集合对象扩展了 Laravel 基础集合,所以它 自然继承了数十种用于流畅工作的方法 Eloquent 模型的底层数组。

但是,集合比数组强大得多,并且公开了各种可以使用直观界面链接起来的 map/reduce 操作。

Eloquent Collection Reference

【讨论】:

  • 假设如果我以上图所示的格式从数据库中获取 10000 甚至更多行(雄辩的集合对象)是否有效?
  • 是的,效率很高
猜你喜欢
  • 2015-07-17
  • 2015-03-12
  • 2017-09-02
  • 2019-09-08
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 1970-01-01
相关资源
最近更新 更多