J'ai ces tables de base de données:
public function getPosts() { return $this->belongsToMany('App\Post', ?, ?, ?); }
comment définir les paramètres hasMany, comesTo, comesToMany avec des noms personnalisés?
Model: Author
public function getAuthor() { return $this->belongsTo('App\Author', ?, ?); } public function getCategories() { return $this->belongsToMany('App\Category', ?, ?, ?); }
Modèle: Message
public function getPosts() { return $this->hasMany('App\Post', ?, ?); }
Modèle: Catégorie
author (atr_id pk) // model : Author category (ctg_id pk) // model : Category post (pst_id pk, pst_atr_id fk) // model : Post post_categories (pct_pst_id fk, pct_ctg_id fk) // pivot : PostCategories
3 Réponses :
Modèle: Auteur
public function getPosts() { return $this->belongsToMany('App\Post', 'post_categories', 'pct_ctg_id', 'pct_pst_id'); }
Modèle: Message
public function getAuthor() { return $this->belongsTo('App\Author', 'pst_atr_id', 'pst_id'); } public function getCategories() { return $this->belongsToMany('App\Category', 'post_categories', 'pct_pst_id', 'pct_ctg_id'); }
Modèle: Catégorie
public function getPosts() { return $this->hasMany('App\Post', 'pst_id', 'atr_id'); }
Modèle: Auteur
<?php public function getPosts(){ return $this->belongsToMany('App\Post','post_categories ','pct_ctg_id','pct_pst_id'); /* 'post_categories' is the pivot table. Rest 2 parameters- first is foreign key present in post_categories of the current model, second is foreign key present in post_categories of the model we are relating with*/ }
Modèle: Message
<?php public function getAuthor(){ return $this->belongsTo('App\Author','pst_atr_id','atr_id'); // first is foreign key of author table in this current table and second is primary key name of author table. } public function getCategories(){ return $this->belongsToMany('App\Category','post_categories','pct_pst_id ','pct_ctg_id'); /* 'post_categories' is the pivot table. Rest 2 parameters- first is foreign key present in post_categories of the current model, second is foreign key present in post_categories of the model we are relating with*/ }
Modèle: Catégorie
<?php public function getPosts(){ return $this->hasMany('App\Post','pst_atr_id');// author table's foreign key in Post table. }
Author : $this->hasMany('App\Post', 'pst_atr_id', 'atr_id'); Post : $this->belongsTo('App\Author', 'pst_atr_id', 'atr_id'); Post : $this->belongsToMany('App\Category', 'post_categories', 'pct_pst_id', 'pct_ctg_id'); Category : $this->belongsToMany('App\Post', 'post_categories', 'pct_ctg_id' 'pct_pst_id');
montrer la structure de la base de données de ces tables?
Vous voulez dire des clés étrangères personnalisées?