在Laravel 4.1中,当我分页一个集合时,我无法print_r或var_dump,没有->toArray()
。
我只有死亡的白屏wsod
。
我使用雄辩和QueryBuilder
遇到了同样的问题示例控制器
public function index()
{
$products = $this->product->with('category')->paginate(5);
return View::make('admin.products.index', compact('products'));
}
示例视图不起作用
<pre><?php print_r($products); ?></pre>
示例视图确实有效
<pre><?php print_r($products->toArray()); ?></pre>
我获得的唯一反馈是从我的laravel.log
文件
[2014-01-27 14:50:34] production.ERROR: exception 'SymfonyComponentDebugExceptionFatalErrorException' with message 'Allowed memory size of 134217728 bytes exhausted (tried to allocate 130023424 bytes)' in /Applications/AMPPS/www/testapp.lar/app/storage/views/18e32e837eb584960d223cd8728fd06e:38
Stack trace:
#0 [internal function]: IlluminateExceptionHandler->handleShutdown()
#1 {main} [] []
有人知道这种大量的内存消费或如何修复吗?
print_r($ products)您实际上是在打印Laravel用来查询和获取数据的巨大对象。您基本上会得到大量的文本,这显然使您的机器压倒了。您不需要/想要。
您想迭代$产品集合并让Laravel神奇地返回值。
foreach ( $products as $v ) {
echo $v->product_name;
}
如果您喜欢使用数组,则可以将$产品集合转换为数组并迭代该数组。
$products = $products->toArray();
foreach ( $products['data'] as $v ) {
}
当您将分页的集合转换为数组时,数组将如下构造,因此对上述['data']的引用。
数组(( [Total] => ... [per_page] => ... [Current_Page] => ... [last_page] => ... [来自] => ... [to] => ... [data] =>数组(...))