Salut, je suis entrain de faire un plugin commentaire et je bloque à un endroit :
Voici ma requête :
<?php
public function view($slug = null)
{
$article = $this->Articles->find()->select([
'Articles.id',
'Articles.title',
'Articles.slug',
'Articles.content',
'Articles.created',
'Articles.online',
'Users.username',
'Users.slug',
'Users.id',
'Categories.name',
'Categories.id'
])->where(['Articles.slug'=>$slug])->contain(['Categories','Users','Comments'])->first();
$this->set('article', $article);
$this->set('_serialize', ['article']);
}
?>
Ma question est la suivante, je cherche à joindre la table user dans le contain "Comments". Comment est-ce possible à faire ?
Merci beaucoup !
Hello,
->contain([
'Categories',
'Users',
'Comments',
'Comments.Users'
])
A condition qu'il y ais une relation entre les 2 bien sûr.
Quelque chose comme ça
->contain([
'Categories',
'Users' => function ($q) {
return $q->select(['Users.id', 'Users.username']);
},
'Comments',
'Comments.Users'
])
@Xeta: super ça fonctionne ! merci :)
Par contre, comment tu fais pour sélectionner uniquement certain champs ? Oo quand j'essaie de rajouter par exemple "Comments.Users.username" ça me dit :
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Comments.Users.username' in 'field list'
Merci d'avance :)