Ich habe eine große, aber einfache Join-Abfrage für große Daten. Wenn ich das Abfrageergebnis mit dd()
oder var_dump()
drucke, erhalte ich das Ergebnis, aber wenn ich Ergebnisdaten übergeben oder umleiten, erhalte ich eine Ausnahme, die ist
"Der HTTP-Statuscode" 1 "ist ungültig."
Hier ist der Aktionscode:
public function postSearch(Request $request)
{
$min_price = !empty($request['min_price']) ? $request['min_price'] : 500;
$max_price = !empty($request['max_price']) ? $request['max_price'] : 50000000000;
$properties = DB::table('properties')
->join('addresses', function($join) {
$join->on('properties.id', '=', 'addresses.property_id');
})
->where('status', '=', 1)
->where('category', '=', $request['search_category'])
->where('type', '=', $request['contract'])
->where('city', '=', $request['search_city'])
->where('area', '=', $request['property_area'])
->where('bed_room', '=', $request['search_bedroom'])
->where('bath_room', '=', $request['bath_room'])
->whereBetween('price', [$min_price, $max_price])
->orderBy('properties.updated_at', 'desc')
->paginate(15);
try {
if(!empty($properties))
{
return Redirect::to('property/search', compact('properties'));
}
else
{
return Redirect::to('/')->with('message', PropertyHelper::formatMessage(trans('property.property_not_found'), 'danger'));
}
}
catch(\Exception $ex) {
dd($ex->getMessage());
}
}
Ich denke, Sie versuchen, die Suchergebnisse nach der Suche anzuzeigen. Das Problem ist diese Linie.
return Redirect::to('property/search', compact('properties'));
Nachdem Sie das Suchergebnis erhalten haben, sollten Sie eine Ansicht aufrufen, nicht umleiten.
return view('property.search', compact('properties'));
Stellen Sie jedoch sicher, dass Sie die Ansichtsdatei haben.
In Laravel 5 passiert es mir auch, wenn ich bei der Umleitung die benannte Route vergesse und versuche:
return redirect('users.overview', ['id' => $id]); // Error
anstatt:
return redirect()->route('users.overview', ['id' => $id]);
Ich hatte das gleiche Problem.
Verwenden Sie with () wie in Ihrem anderen Block:
return Redirect::to('property/search')->with(compact('properties'))
Außerdem können Sie ab Laravel 5 den redirect () - Helfer einfach folgendermaßen verwenden:
return redirect('property/search')->with(compact('properties'))
Ich bin auch auf die gleiche Situation gestoßen, weil Sie im Modell die falschen Parameter übergeben haben
public static $rules = array(
'id' => 'required',
);
Ich hatte irgendwie das gleiche Problem. Gemäß Laravel 5.1-Dokumentation kann Redirect folgende Parameter bereitstellen:
return redirect('yourRoute')->with('param', 'value');
Dann in der Ansicht den Parameter echo:
@if (session('param'))
{{ session('param') }}
@endif