2016-04-11 10 views
6

In Laravel, c'è un modo per differenziare tra firstOrCreate creando la riga e se si trova la riga esiste da prima?In Laravel, c'è un modo per scoprire se `firstOrCreate` ha creato o se ha trovato la riga?

Oppure devo eseguire manualmente un get() e quindi creare la riga?

+0

Se esiste, trova i dati altrimenti creerà nuovi dati. – aldrin27

+0

Sì, ma voglio sapere se i dati esistevano e non ha fatto nulla, o se ha creato i dati. – Pat

+0

'$ test = Modello :: firstOrCreate()' solo 'print_r ($ test)' questo mostrerà i dati. – aldrin27

risposta

21

Se il modello è stato creato nel ciclo di vita attuale, l'attributo wasRecentlyCreated del modello sarà impostato su true. In caso contrario, tale attributo sarà impostato su false.

In altre parole, diciamo di avere un utente con l'e-mail, [email protected].

$user = User::firstOrCreate(['email' => '[email protected]']); 

// the below will dump out false because this entry already existed 
var_dump($user->wasRecentlyCreated); 

Ora, consente di dire [email protected] non esiste.

$user2 = User::firstOrCreate(['email' => '[email protected]']); 

// the below will dump out true because this user was created 
// in the current request lifecycle 
var_dump($user->wasRecentlyCreated); 
Problemi correlati