2017-05-09 18 views
2

私は自分のlaravelプロジェクトで検索フォームを作成しようとしています。メモリサイズが134217728バイト(許容サイズは74735240バイト)

だから、私はので、私はドロップボックスを作成するためにそれらを使用することができますすることができますので、ビューにすべてのほとんどすべてのテーブル列を渡したい、チェックボックスやなど

しかし、私は$var = Model::all();を使用する場合には、このエラーを返す:

Allowed memory size of 134217728 bytes exhausted (tried to allocate 74735240 bytes)

もう1つ解決策を教えてください。

これは私のコントローラです:

<?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); 
    } 
} 

ありがとうございました!

答えて

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'); 
関連する問題