2015-06-06 8 views
29

Ich benutze Laravels Funktion firstOrNew(), um einen neuen Benutzer zu erstellen oder einen vorhandenen zu finden und zu aktualisieren.Laravel firstOrNew wie zu prüfen, ob es zuerst oder neu ist?

Wie kann ich wissen, nachdem das Objekt erstellt wurde, ob es zuvor existiert hat oder ob es ein neues Objekt ist?

Die Idee ist so etwas wie dieses:

$user = \App\User::firstOrNew([ 
    'email' => $userData->getEmail(), 
    'name' => $userData->getName(), 
]); 

if ($user->new) { // some way to check 
    // user was created now 
} else { 
    //user already existed 
} 
+0

Kontrolle der created_at Zeitstempel –

+0

wird es noch leer sein, wenn ich firstorNew benutzen? Es wird noch nicht in der Datenbank sein – raphadko

+0

warum "es wird noch nicht in der Datenbank sein"? –

Antwort

42

Sie die auf dem Modell exists Eigenschaft überprüfen.

if ($user->exists) { 
    // user already exists 
} else { 
    // user created from 'new'; does not exist in database. 
} 
1

Sie können überprüfen, ob Ihr Benutzer kürzlich erstellt wurde.

if ($user->wasRecentlyCreated) { 
    // new user 
} else { 
    // user already exists 
} 

(Quelle: Thomas Kim von this answer)

Verwandte Themen