setTable('projets'); $this->setPrimaryKey('id'); //$this->setDisplayField('id'); $this->setDisplayField('nom'); // https://book.cakephp.org/3/fr/orm/associations.html#associations-belongsto /* $this->belongsTo('GroupesThematiques', [ 'foreignKey' => 'groupes_thematique_id' ]); */ $this->belongsTo('GroupesThematiques') ->setForeignKey('groupes_thematique_id') /* * Nom de la colonne dans l’autre table, qui sera utilisée pour correspondre à la foreignKey, * par défaut, la clé primaire (colonne id). */ ->setBindingKey('id'); /* * propertyName: nom de la propriété qui devra être remplie avec les données de la table associée * dans les résultats de la table source. * Par défaut il s’agit du nom singulier avec des underscores de l’association. */ //->setProperty('groupe_thematique'); /* $this->belongsTo('Users', [ 'foreignKey' => 'chef_science_id' ]); $this->belongsTo('Users', [ 'foreignKey' => 'chef_projet_id' ]); */ //$this->belongsTo('Pis', [ $this->belongsTo('ChefSciences', [ 'className' => 'Users', 'foreignKey' => 'chef_science_id', //'propertyName' => 'Pi' //'propertyName' => 'pi' //'propertyName' => 'chefsci' ]); //$this->belongsTo('Pms', [ $this->belongsTo('ChefProjets', [ 'className' => 'Users', 'foreignKey' => 'chef_projet_id', //'propertyName' => 'Pm' ]); $this->hasMany('Materiels', [ 'foreignKey' => 'projet_id' ]); } /** * Default validation rules. * * @param \Cake\Validation\Validator $validator Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator) { $validator ->integer('id') ->allowEmptyString('id', 'create'); $validator ->scalar('nom') ->maxLength('nom', 45) ->requirePresence('nom', 'create') ->allowEmptyString('nom', false) ->add('nom', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']); $validator ->scalar('description') ->allowEmptyString('description'); $validator // Cakephp default (ymd) //->date('date_start') ->allowEmptyDate('date_start'); $validator // Cakephp default (ymd) //->date('date_stop') ->allowEmptyDate('date_stop'); 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'])); $rules->add($rules->existsIn(['groupes_thematique_id'], 'GroupesThematiques')); $rules->add($rules->existsIn(['chef_science_id'], 'ChefSciences')); $rules->add($rules->existsIn(['chef_projet_id'], 'ChefProjets')); //$rules->add($rules->existsIn(['chef_science_id'], 'Users')); /* $rules->add($rules->existsIn(['chef_science_id'], 'Pis')); $rules->add($rules->existsIn(['chef_projet_id'], 'Pms')); */ return $rules; } }