2015-06-06 7 views
29

Używam funkcji Laravel firstOrNew(), aby utworzyć nowego użytkownika lub znaleźć i zaktualizować istniejący.Laravel firstOrNew jak sprawdzić, czy jest pierwszy czy nowy?

Skąd mam wiedzieć, po utworzeniu obiektu, czy istniał wcześniej lub czy jest to nowy obiekt?

Pomysł jest coś takiego:

$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

check datownik created_at –

+0

to nadal będzie pusty, gdy używam firstorNew? Nie będzie jeszcze w bazie danych – raphadko

+0

, dlaczego "nie będzie jeszcze w bazie danych"? –

Odpowiedz

42

można sprawdzić właściwość exists modelu.

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

Możesz sprawdzić, czy Twój użytkownik został niedawno utworzony.

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

(Źródło: Thomas Kim z this answer)

Powiązane problemy