table('users'); $this->displayField('name'); $this->primaryKey('id'); $this->hasMany('Jobs', [ 'foreignKey' => 'user_id' ]); $this->belongsToMany('UserTypes', [ 'foreignKey' => 'user_id', 'targetForeignKey' => 'user_type_id', 'joinTable' => 'users_user_types' ]); } /** * 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 ->requirePresence('name', 'create') ->notEmpty('name'); return $validator; } public function findManagers(Query $query, array $options) { return $query->matching('UserTypes', function ($q) { return $q->where([ 'UserTypes.name' => 'Manager' ]); }); } }