Ich versuche, Daten über Eloquent in einer Methode zu filtern, die nur auf AJAX-Anforderungen antwortet und dann die Ansicht zusammen mit den gefilterten Daten zurückgibt. Allerdings habe ich eine Frage:Verwenden eloquent beim Filtern von Daten ohne Redundanz
Zuerst lässt einen Blick auf meinen Code nehmen:
public function AJAX_get_reports(Request $request)
{
if($request->ajax())
{
$message = $request->get('message');
$severity = $request->get('severity');
if(strlen($message) > 0 && strlen($severity) > 0)
{
$data = ServerReport::where('severity', '=', $severity)->where('message', '=', $message)->get();
} elseif (strlen($message) > 0) {
$data = ServerReport::where('message', '=', $message)->get();
} elseif (strlen($severity) > 0) {
$data = ServerReport::where('severity', '=', $severity)->get();
} else {
$data = ServerReport::all();
}
return Response::json(View::make('dashboard.reports.index', compact('data'))->render());
}
}
Dies ist der einzige Weg war, konnte ich es tun, es funktioniert, aber ich fühle mich wie es nicht der beste Weg ist Um dies zu tun, besonders wenn Sie mehr Felder zu filtern haben, würde der Code enorme Proportionen mit den Überprüfungen nehmen, gibt es einen besten Weg, dies zu tun?
Zum Beispiel Erstellen der Abfrage während der Überprüfung und dann am Ende ausführen?
if(strlen($message) > 0)
{
// add WHERE to query
}
if(strlen($severity) > 0)
{
// add WHERE to query
}
// Execute query and get the results
Vielen Dank Sir, das ist, was ich gesucht habe. Viel einfacher. –
Glücklich, Ihnen zu helfen. Vereinfachter und effizienter natürlich. Einen schönen Tag noch. –