我尝试在我的laravel项目中创建一个搜索表单。
所以我想将所有几乎所有的表列都传递给视图,这样我就可以使用它们来创建dropbox,复选框等。
但是当我使用$var = Model::all();
时,它会返回此错误:
允许的内存大小为134217728字节耗尽(尝试分配 74735240字节)
你能告诉我另一个解决方案吗?
这是我的控制者:
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use Illuminate\Http\Request;
use App\Lot;
class SearchController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$lots = Lot::all();
return view('lots.search')->withLot($lots);
}
}
谢谢!
答案 0 :(得分:1)
有太多数据无法容纳在内存中。您可能应该对结果集进行分页。
https://laravel.com/docs/5.4/pagination#basic-usage
public function index()
{
$lots = DB::table('lots')->paginate(15);
return view('lots.search', ['lots' => $lots]);
}
或者您可以增加内存限制,但这不是最佳解决方案。
ini_set('memory_limit','160M');