Tous les exemples de modèles Eloquent dans Laravel 4 sont étendus, mais lorsque vous générez un modèle dans Laravel 5, il est dit qu'ils sont étendus, sont-ils identiques?
Laravel 4
<?php
class User extends Eloquent {
//Code
}
Laravel 5
<?php
class User extends Model {
//Code
}
Le Laravel 5 docs dit:
Définir un modèle éloquent
class User extends Model {}
Oui, ils sont pareils. Laravel 4 utilise l'alias de classe pour mapper Illuminate\Database\Eloquent\Model
à Eloquent
. Vous pouvez voir dans le fichier app/config/app.php
:
'Eloquent' => 'Illuminate\Database\Eloquent\Model',
Laravel 5 utilise namespacing à la place. Donc, en haut de la classe de modèle, vous verrez cette ligne:
use Illuminate\Database\Eloquent\Model;
utilisé...
use Illuminate\Database\Eloquent\Model;
étendre le modèle
J'utilise le fichier _ide_helper.php De laravel-ide-helper de barryvdh
La sous-classe est également appelée Eloquent et s’étend au modèle.
Donc, si j'étend ma propre classe de modèle à Eloquent, le IDE connaît toutes les fonctions, comme MyModelClass :: find. Peut-être qu'il y a une autre façon de le faire, mais ça marche vraiment pour moi.