Bonjour, je débute avec laravel, aussi je ne suis pas certain de bien faire les choses.
Je possède 2 tables:
+----------------------+
| Liens |
+----------------------+
| idLien |
| texteLien |
| idRubrique |
| urlLien |
| urlExterne |
| validationLien |
| numeroOrdre |
+----------------------+

+--------------------------+
| Rubriques |
+--------------------------+
| idRubrique |
| nomRubrique |
| idRubriqueParent |
| niveauRubrique |
| validationRubrique |
| nomRepertoireRubrique
| numeroOrdre |
+--------------------------+

Je souhaite récupérer urlLien,texteLien,urlExterne, idRubrique de la table liens et le nom du répertoire de la rubrique correspondant au lien présent dans la table rubrique (nomRepertoireRubrique).
J'ai procédé ainsi dans mon controlleur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
$listeLiens = DB::table('liens')
                      ->join('rubriques','liens.idRubrique','=','rubriques.idRubrique')
                      ->select('urlLien','texteLien','urlExterne','nomRepertoireRubrique','liens.idRubrique')
                      ->where('validationLien', '=',true)
                      ->where('validationRubrique','=', true)
                      ->get();
Y avait-il une meilleure façon de faire, sachant que j'ai fait une relation 1-n entre rubrique et lien:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
class Lien extends Model
{
    //
    public function rubrique(){
        return $this->belongsTo(Rubrique::class);
    }
}
 
class Rubrique extends Model
{
    //
    public function liens(){
        return $this->hasMany(Lien::class);
    }
 
}