Besoin d'aide ?

BadMethodCallException with message 'Call to undefined method Illuminate/Database/Eloquent/Relations/HasOne::associate()'

Avatar de HaytamBakouane
HaytamBakouane

J'ai deux models: Author et Profile

En Author:

public function Profile() {
        return $this->hasOne('App\Models\Profile');
}

En Profile

public function Author() {
        return $this->belongsTo('App\Models\Author');
}

Quand je marche la commade: $profile->author()->associate($author)->save(); je rencontre cette erreure:

BadMethodCallException with message 'Call to undefined method Illuminate/Database/Eloquent/Relations/HasOne::associate()'

Posté il y a 1 mois
Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

T'as pas inversé hasOne et belongTo ?

Posté il y a 1 mois
Avatar de HaytamBakouane
HaytamBakouane

je pense qu'ils doivent étre comme ça ou non?

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Salut,

Tu prends le truc à l'envers. La méthode associate sert pour ta relation belongsTo à associer un auteur à un profil que tu viens de créer, pas l'inverse. Donc ce scenario :

$profile = // Là je crée le profil
$author->profile()->associate($profile);  // Là j'associe le profil à l'auteur, en fait je renseigne la clé étrangère
$author->save();
Posté il y a 1 mois

Vous ne pouvez pas répondre à ce sujet.