setTable('sur_categories'); //$this->setDisplayField('id'); $this->setDisplayField('nom'); $this->setPrimaryKey('id'); /* C'EST FAUX $this->hasMany('Users', [ 'foreignKey' => 'groupes_thematique_id' ]); */ $this->hasMany('Users', [ 'foreignKey' => 'sur_categorie_id' ]); $this->hasMany('Categories') ->setForeignKey('sur_categorie_id') ->setDependent(true); // si le domaine est supprimé, les catégories liées le seront aussi $this->hasMany('Materiels') ->setForeignKey('sur_categorie_id') ->setDependent(false); // si le domaine est supprimé, les matos liés eux NE LE SERONT PAS !! } /** * Default validation rules. * * @param \Cake\Validation\Validator $validator * Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator) { $validator->requirePresence('nom', 'create') ->notEmpty('nom') ->add('nom', 'unique', [ 'rule' => 'validateUnique', 'provider' => 'table' ]) ->add('nom', 'valid', [ 'rule' => [ 'check_string' ], 'message' => 'Le champ doit être valide.', 'provider' => 'table' ]); return $validator; } /** * Returns a rules checker object that will be used for validating * application integrity. * * @param \Cake\ORM\RulesChecker $rules * The rules object to be modified. * @return \Cake\ORM\RulesChecker */ public function buildRules(RulesChecker $rules) { $rules->add($rules->isUnique([ 'nom' ])); return $rules; } }