Voici ma structure de table:Comment puis-je obtenir le nom de l'auteur des commentaires?
-- users
+----+-------+
| id | name |
+----+-------+
| 1 | John |
| 2 | Jack |
| 3 | Peter |
+----+-------+
-- posts
+----+---------+----------------------+-----------+
| id | title | body | author_id |
+----+---------+----------------------+-----------|
| 1 | title1 | somthing | 2 |
| 2 | title2 | whatever | 1 |
| 3 | title3 | anything | 3 |
+----+---------+----------------------+-----------+
-- comments
+----+-----------------+---------+-----------+
| id | message | post_id | author_id |
+----+-----------------+---------+-----------+
| 1 | my message | 3 | 2 |
| 2 | whatever | 1 | 3 |
+----+-----------------+---------+-----------+
Maintenant, je veux obtenir un poste avec tous ses commentaires. Voici mon code:
$post= Posts::orderBy('id', 'DESC')->where('id', $request->id)->first();
$comments = $post->comments;
A pris note que j'ai cette relation dans le modèle User
:
public function comments()
{
return $this->hasMany('App\Comments','post_id', 'id')->orderBy('id');
}
Quelle est ma question? Je veux aussi connaître le nom de l'auteur des commentaires. Je veux dire le nom de la personne qui a écrit le commentaire. de toute façon, comment puis-je faire une relation sur une relation existante?
Note: Je peux faire cela par un JOIN
brut. Mais je veux savoir comment puis-je faire cela par les relations Laravel?
Désolé pour 'task_id', c'était une faute de frappe, eidted. –
thx, upvote ..! –
juste une question, n'y at-il pas d'autre moyen au lieu de 'with()'? –