Problème cakephp3 BelongToMany

Par massadu33, il y a 9 ans


Bonjour,
J'ai un petit problème concernant la récupération de données avec un BelongToMany.
En effet j'ai 4 tables

Table Users

public function initialize(array $config) { $this->hasOne('Profils',['foreignKey' => 'user_id']); $this->hasMany('Projects', ['foreignKey' => 'user_id', 'dependent' => true, ]); $this->belongsToMany('Skills'); }

Table Skills

public function initialize(array $config) { $this->belongsToMany('Users'); }

Table skills_users

pas déclaré uniquement en base de donnée

Table Projects

public function initialize(array $config) { $this->belongsTo('Users', [ 'foreignKey' => 'user_id', 'joinType' => 'INNER' ]); $this->belongsTo('Categories',[ 'foreignKey' => 'categorie_id' ]); $this->addBehavior('Timestamp', [ 'events' => [ 'Model.beforeSave' => [ 'created_at' => 'new', 'update_at' => 'always' ] ] ]); }

Donc chaque projet appartient à un utilisateur et un utilisateur à un/plusieurs skills

lorsque je liste tout les projets, je voudrais que ma requête me retourne les skills associés aux utilisateurs concernés
Lorsque je réalise cette requête :

$projects = $this->Projects->find('all')->contain(['Users','Users.Profils','Users.Skills']);

Cela me retourne un tableau skills vide.
Une idée ?

Merci

4 réponses

massadu33, il y a 9 ans

Je me permet de relancer

Xen0risDEV, il y a 9 ans

Bonjour, comme je ne comprends pas vraiment votre souci, quoique j'aie une petite idée en tête de ce qui pourrait éventuellement bloquer, je ne vais pas vous dire n'importe quoi, mais je vous conseille de vous référer au cookbook.

massadu33, il y a 9 ans

Et bien merci du conseil ! j'ai rajouté

'joinTable' => 'skills_users'

à mon association et cela marche.
Merci

Xen0risDEV, il y a 9 ans

Bonjour, impeccable alors ! Bonne continuation :)