我正在使用雄辩的模型从数据库中检索数据。我的查询
$tests_details = Previous_Mocks::where($data)->orderBy('sno', 'desc')->get();
据我所知$tests_details
将返回对象数组(结果),但当我回显is_array($tests_details)
时,它返回false,这意味着它不是数组但是当我回显{{1它显示正确的计数。见下面的代码
count($test_details)
它为foreach ($tests_details as $td)
{
echo is_object($td);
echo "<br/>";
}
撤回1。当我使用以下is_object($td)
函数打印$tests_details
时,我得到的输出
并且何时是echo print_r
它显示正确的输出并且一切正常。但我想知道为什么雄辩以图像中显示的格式而不是普通对象返回数据。我是laravel的新手,目前使用laravel 5.0,任何解释都很明显。
答案 0 :(得分:3)
Previous_Mocks
模型返回的数据是一个集合对象。
Eloquent返回的所有多结果集都是实例 Illuminate \ Database \ Eloquent \ Collection对象,包括结果 通过get方法检索或通过关系访问。该 Eloquent集合对象扩展了Laravel基础集合,因此它 自然地继承了几十种用来流利地工作的方法 Eloquent模型的基础数组。
但是,集合比数组更强大,并且可以使用直观的界面显示各种可以链接的map / reduce操作。