Bonjour,
J'ai un petit soucis avec les relations Eloquent dans laravel 5.2
J'ai 2 tables : Users et Dossiers
Un user peut avoir plusieurs dossiers et un dossier appartient à un seul user, jusque là rien de compliqué.
Mes Models (juste les relations) :
class User extends Model
{
public function dossiers()
{
return $this->hasMany('App\Dossier');
}
}
class Dossier extends Model
{
public function user()
{
return $this->belongTo('App\User');
}
}
Mon problème est que le code suivant marche
$users = User::with('dossiers')->get();
Mais l'inverse me renvoit une erreur :
$dossiers = Dossier::with('user')->get();
l'erreur est la suivante :
BadMethodCallException in Builder.php line 2161:
Call to undefined method Illuminate\Database\Query\Builder::belongTo()
Il doit y avoir quelquechose que je n'ai pas saisi dans le fonctionnement des relations, si quelqu'un pouvez m'expliquer, ce serait gentil.
Merci.
Hello,
A première vue, tu as parfaitement compris les relations.
Cependant, un conseil : Nomme tes models en anglais ! Ou alors tout en français.
Parce que la, un User hasMany Dossier, c'pas top. Alors que un User HasMany Folders, c'est plus cool :)
Il s'agit simplement du nom de ta méthode qui n'est pas la bonne, ce n'est pas a belongTo
mais belongsTo
.
Fait attention à ça, et un petit tour sur la doc (avec un vieux copié/collé) t'aurais peut être pu éviter quelques recherches :)
Oo, en effet je suis passé à côté de l'erreur de syntaxe.
Je prends note pour les conventions de nommage.
Merci bien.