Ich habe eine Anwendung, die manchmal Stücke von HTML zurückgibt; In diesem Fall muss ich einen großen Tisch zurückgeben und der Speicher ist erschöpft.Laravel Response :: json() erschöpft Speicher
Ich habe ein Makro eingerichtet, das überprüft, dass die Daten zurückgeben nicht größer als die zulässige JSON-Grenze ist;
Response::macro('jsonWithValidation', function($response) {
if(strlen(serialize($response)) > 125000000)
$response = array(
'status' => 200,
'execute_also' => array(
'notify("warning", "Data too large to be sent over json");'
)
);
return Response::json($response, $response['status']);
});
Dieses Skript funktioniert als ein Charme; Das Problem, dem ich jetzt gegenüberstehe, ist, dass die letzten Response::json
Auspuff Speicher. Das bedeutet, dass meine Antwort nicht zu groß ist, um über Json gesendet zu werden, aber die Laravel-Methode (ich benutze Laravel 4.2) stürzt alles ab.
Idealerweise an dieser Stelle des Code, den ich zwei Möglichkeiten haben könnte:
- senden alles mit grundlegenden php, aber ich glaube,
- klar, dass die Speicher die Laravel Funktion ist ziemlich einfach schon werde ich nicht muß für die Antwort
im Idealfall würde ich mag die zweite Option verwenden, aber ich habe keine Ahnung, ob dies geschehen könnte ... so was soll ich tun, um zu vermeiden Speicherlimit überschreiten?
EDIT: Dies ist der Fehler, den ich
bekommen[05-May-2016 14:19:42 Europe/Rome] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 64 bytes) in C:\wamp\www\project_ski\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php on line 446
Sie machen einen Scheck, aber generieren JSON trotzdem! Mach es einfach nicht, wenn der Check fehlschlägt. –