Laravel-无法打印_R分页收集 - 内存问题



在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] =>数组(...))

最新更新