409 Stimmen

Laravel Überprüfen, ob ein Datensatz vorhanden ist

Ich bin neu bei Laravel. Wie finde ich heraus, ob ein Datensatz vorhanden ist?

$user = User::where('email', '=', Input::get('email'));

Was kann ich hier tun, um zu sehen, ob $user einen Datensatz hat?

2voto

Kishor Pant Punkte 86

Sie haben einige Lösungen gesehen, aber die magische Syntaxüberprüfung kann wie folgt aussehen:

$model = App\Flight::findOrFail(1);

$model = App\Flight::where('legs', '>', 100)->firstOrFail();

Es wird automatisch eine Ausnahme mit der Antwort 404 ausgelöst, wenn keine entsprechenden Modelle gefunden werden. Manchmal möchten Sie eine Ausnahme auslösen, wenn ein Modell nicht gefunden wird. Dies ist besonders nützlich in Routen oder Controllern. Die `findOrFail`- und `firstOrFail`-Methoden werden das erste Ergebnis der Abfrage abrufen; wenn jedoch kein Ergebnis gefunden wird, wird eine Illuminate\Database\Eloquent\ModelNotFoundException Ausnahme ausgelöst.

Ref: https://laravel.com/docs/5.8/eloquent#retrieving-single-models

2voto

Nijat Aliyev Punkte 558

Einfach, komfortabel und verständlich mit Validator

class CustomerController extends Controller
{
    public function register(Request $request)
    {

        $validator = Validator::make($request->all(), [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:customers',
            'phone' => 'required|string|max:255|unique:customers',
            'password' => 'required|string|min:6|confirmed',
        ]);

        if ($validator->fails()) {
            return response(['errors' => $validator->errors()->all()], 422);
        }

1voto

Dies überprüft, ob die bestimmte E-Mail-Adresse in der Tabelle existiert:

if (isset(User::where('email', Input::get('email'))->value('email')))
{
    // Input::get('email') existiert in der Tabelle
}

1voto

wheelmaker Punkte 2787

Kürzeste funktionierende Optionen:

// Wenn Sie etwas mit dem Benutzer tun müssen
if ($user = User::whereEmail(Input::get('email'))->first()) {

    // ...

}

// Andernfalls
$userExists = User::whereEmail(Input::get('email'))->exists();

1voto

Chawker21 Punkte 91
$user = User::where('email', '=', Input::get('email'))->first();
if ($user === null) {
   // Benutzer existiert nicht
}

kann geschrieben werden als

if (User::where('email', '=', Input::get('email'))->first() === null) {
   // Benutzer existiert nicht
}

Dies wird true oder false zurückgeben, ohne eine temporäre Variable zuzuweisen, wenn dies alles ist, was Sie in der Originalanweisung für $user verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X