Il metodo get() fornisce tutti i valori dal database che soddisfano i parametri dove, come prima(), si ottiene solo il primo risultato. Usa find() e findOrFail() quando stai cercando una chiave. Ecco come li uso:
Quando voglio tutti i dati da una tabella, utilizzo il metodo all() Model :: all();
Quando voglio trovarlo con la chiave primaria: Modello :: find (1) -> first(); oppure Modello :: findOrFail (1) -> first(); Funzionerà se c'è una riga con una chiave primaria di uno. Dovrebbe solo recuperare una riga, quindi io uso first() invece di get(). Ricorda che se hai eliminato la riga che utilizzava la chiave 1, o non disponi di dati nella tabella, il tuo find (1) fallirà.
Quando sto cercando dati specifici come in una clausola where: Model :: where ('field', '=', 'value') -> get();
Quando desidero solo il primo valore dei dati nella clausola where. Modello: dove ('campo', '=', 'valore') -> first();
Grazie nerdklers, apprezzo molto la risposta! Quindi 'get()' ** solo ** non richiesto quando si usa '-> find()' ... Non riesco a trovare nessun documento su quando è richiesto l'uso ... Inoltre è -> get() l'utilizzo non è richiesto in Eloquent o l'utilizzo get() è lo stesso in Eloquent e in Fluent Query Builder? Grazie per l'aiuto! [] [1] [1]: http://i6.minus.com/jLj4oKVAVXP8l.png –
Pensa in questo modo: quando non sai esattamente cosa restituirà una query, allora bisogno di usare 'get()'. Ad esempio non puoi usarlo con 'all()' dato che ** sai ** che restituirà tutti i record e non è possibile applicare ulteriori condizioni. È lo stesso con 'find()' dato che sai che cercherà solo di recuperare un record. –
@nerdklers - bel chiarimento. Potresti pensare di aggiungerlo alla risposta principale. –