User::all() et User::get() permettra de faire exactement la même chose.
all() est une méthode statique sur le Eloquent\Model. Tout ce qu'il fait est de créer un nouvel objet de requête et d'appel get() sur elle. Avec all(), vous ne pouvez pas modifier la requête effectuée à tous (sauf que vous pouvez choisir les colonnes à sélectionner en les passant en paramètres).
get() est une méthode sur la Eloquent\Builder objet. Si vous avez besoin de modifier la requête, comme l'ajout d'une clause where, alors vous devez utiliser get(). Par exemple, User::where('name', 'David')->get();.
De clarifier davantage pourquoi cela fonctionne, c'est parce qu'il y a une magie de la méthode dans la classe du Modèle qui prendra tout appel statique qui n'est pas défini, créer une instance, puis en appel de la méthode sur l'exemple pour vous.
Moi aussi, j'étais perplexe quand je suis arrivé dans cette et ne pouvait pas trouver get() comme une méthode statique. Mais ensuite, j'ai rappelé l'Laracast épisode qui m'a permis de relier les points.
User::all()
etUser::get()
permettra de faire exactement la même chose.all()
est une méthode statique sur leEloquent\Model
. Tout ce qu'il fait est de créer un nouvel objet de requête et d'appelget()
sur elle. Avecall()
, vous ne pouvez pas modifier la requête effectuée à tous (sauf que vous pouvez choisir les colonnes à sélectionner en les passant en paramètres).get()
est une méthode sur laEloquent\Builder
objet. Si vous avez besoin de modifier la requête, comme l'ajout d'une clause where, alors vous devez utiliserget()
. Par exemple,User::where('name', 'David')->get();
.De clarifier davantage pourquoi cela fonctionne, c'est parce qu'il y a une magie de la méthode dans la classe du Modèle qui prendra tout appel statique qui n'est pas défini, créer une instance, puis en appel de la méthode sur l'exemple pour vous.
Vous pouvez le voir dans le code source ici: https://github.com/laravel/framework/blob/5.6/src/Illuminate/Database/Eloquent/Model.php (ligne 1580)
C'est aussi expliqué dans ce Laracast épisode: https://laracasts.com/series/advanced-eloquent/episodes/3 (Abonnement requis)
Moi aussi, j'étais perplexe quand je suis arrivé dans cette et ne pouvait pas trouver
get()
comme une méthode statique. Mais ensuite, j'ai rappelé l'Laracast épisode qui m'a permis de relier les points.