setTable('stats'); $this->setDisplayField('year'); $this->setPrimaryKey(['year', 'user_id']); $this->belongsTo('Users', [ 'foreignKey' => 'user_id', 'joinType' => 'INNER' ]); /* FK composite possible aussi, ex : $this->belongsTo('Students', [ 'foreignKey' => ['program_id', 'location_id', 'course_id'], ]); */ } /** * Default validation rules. * * @param \Cake\Validation\Validator $validator Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator) { $validator ->scalar('year') ->allowEmptyString('year', 'create'); $validator ->dateTime('last_login_time') ->allowEmptyDateTime('last_login_time'); $validator ->dateTime('last_logout_time') ->allowEmptyDateTime('last_logout_time'); $validator ->integer('connex_nb') ->allowEmptyString('connex_nb', false); $validator ->integer('connex_dur') ->allowEmptyString('connex_dur', false); 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->existsIn(['user_id'], 'Users')); /* Rule avec composite key : $rules->add($rules->existsIn([’site_id’, ’article_id’], ’articles’)) */ return $rules; } }