0
votes

Ne pas détecter les relations entre les classes en utilisant Eloquant

J'ai 2 classes. Les liens et informations doivent être connectés. La classe Info a un link_id et le lien a un user_id.

Je souhaite que les utilisateurs voient les informations de leurs liens dans leurs tableaux de bord personnels. Donc, un utilisateur, a de nombreux liens, un lien a de nombreuses informations. P>

Modèle de liaison a: P>

 $table->foreign('link_id')
                ->references('id')->on('links')
                ->onDelete('cascade');


1 commentaires

Quel est le nom correct de "Info" et de la table "Link"?


3 Réponses :


-1
votes

Veuillez essayer de modifier la relation éloquente, indiquant qu'il s'agit d'une classe.

public function links(){
   return $this->hasMany(Link::class);
}


1 commentaires

Salut! J'ai changé les liens et la classe d'information comme vous l'avez dit et cela donne la même erreur: Liens de fonction publique () {Retour $ Ceci-> Bewareto (link :: Classe); }



0
votes

$ linksbyelier code> est une collection code> de code> de lien code> modèles; Vous ne pouvez pas accéder à une relation ( infos code>) sauf si vous ne bougeez pas sur chacun.

public function infos(){
  return $this->hasMany(App\Info::class);
}

public function link(){
  return $this->belongsTo(App\Link::class);
}


0 commentaires

1
votes

Vous pouvez cueille code> le Infos code> de la collection de liens que vous avez (en supposant que les relations sont correctement configurées):

$linksByOwner = Link::with('infos')->where('user_id', $user_id)->get();

$infos = $linksByOwner->pluck('infos');


2 commentaires

Ce cueillette retourne un tableau. Est-il possible de le rendre un objet?


cueillette renvoie une nouvelle collection (objet), pas un tableau