setTable('groupes_thematiques'); //$this->setDisplayField('id'); $this->setDisplayField('nom'); $this->setPrimaryKey('id'); // https://book.cakephp.org/3/fr/orm/associations.html#associations-hasmany $this->hasMany('Projets', [ 'foreignKey' => 'groupes_thematique_id' ]); $this->hasMany('Materiels', [ 'foreignKey' => 'groupes_thematique_id' ]); $this->hasMany('Suivis', [ 'foreignKey' => 'groupes_thematique_id' ]); $this->hasMany('Users') ->setForeignKey('groupes_thematique_id'); /* Pour une clé composite : ->setForeignKey([ 'article_id', 'article_hash' ]); */ /* * Suppression récursive du modèle : * Quand un groupe thématique est supprimé, on supprime tous les utilisateurs associés * PUISSANT MAIS DANGEREUX ! ->setDependent(true); */ /* * propertyName: nom de la propriété qui doit être rempli avec les données des Table associées * dans les résultats de la table source. * Par défaut, celui-ci est le nom au pluriel et avec des underscores de l’association * donc ici 'users' ->setPropertyName(); */ } /** * Default validation rules. * * @param \Cake\Validation\Validator $validator * Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator) { $validator->integer('id')->allowEmpty('id', 'create'); $validator->allowEmpty('nom')->add('nom', 'valid', [ 'rule' => [ 'check_string' ], 'message' => 'Le champ doit être valide.', 'provider' => 'table' ]); $validator->allowEmpty('description')->add('description', 'valid', [ 'rule' => [ 'check_string_with_some_special_cars' ], 'message' => 'Le champ doit être valide.', 'provider' => 'table' ]); return $validator; } }