2017-07-18 2 views
0

Bisher eloquent die ich verwende ->exist() und schlicht-PHP isset() ...Was ist die beste Methode, um leere eloquente Abfrage in Laravel zu behandeln?

Im Moment benutze ich sie beide ..., wenn man nicht funktioniert, ich auf die andere wechseln werden und dann wird funktionieren.

Aber das macht den Code sieht schmutzig .. Haben Sie irgendwelche Vorschläge, wenn jeder von ihnen zu verwenden, was ist der Unterschied .. was ist die beste Praxis für den Umgang mit null eloquent Abfrage in Laravel ist .. Danke

Antwort

1

Wir können dafür empty() Methode verwenden.

// After you initiate your model in variable 
$var = Model::find($id); 

// Just check it use empty method 
if(empty($var)) { 
    // Do something here 
} 

EDIT: Erklärung der Verwendung nativer exists() und isset() in bewährten Verfahren.

Wie wir wissen isset Methode wird in der Regel verwendet, um zu überprüfen, ob Variable definiert ist oder nicht.

$col = "column" 
if(isset($col)) { 
    // true 
} 
if(isset($cols)) { 
    // else 
} 

Und für die Verwendung exists(), normalerweise verwendet, um zu validieren. Sie können es in Laravel Dokumentation überprüfen.

$name = $request->get('name'); 
if(User::where('name', $name)->exists()){ 
    // It will true if the in users table exists the $name in name columns 
    // And do something if true :D 
} else { 
    // If not exists/false you can return error like this 

    return response()->json([ 
     'error'=>true 
    ],400); 
} 
+0

Vielen Dank für Ihre Antwort, aber ich würde eine Erklärung bevorzugen, wenn die native eloquent verwenden -> existieren() oder php isset() ... – derrysan7

+0

Aaah ok-ok, auf meine Antwort bearbeitet aussehen. Ich hoffe, ich kann es klarstellen: D –

+0

Sie könnten auch einfach die Zählmethode 'if ($ var-> count()) {/ * tue etwas * /}' verwenden, als ob das Modell alles zurückgibt, was die Zahl 1 und ist daher eval als wahr. – SamBremner

Verwandte Themen