I see what happend but i just don't get why. There is a belongs to made for the same table. When is remove that everything works fine. Anybody knows why?
Op zondag 6 september 2015 15:55:33 UTC+2 schreef Abdelmajid el Ibrahimi: > > Hello, > > I have made a table named users with a id and a username and a password > The problem is when i bake the model i get the next model: > > $this->table('users'); > $this->displayField('user_id'); > $this->primaryKey('user_id'); > > $this->belongsTo('Users', [ > 'foreignKey' => 'user_id', > 'joinType' => 'INNER' > ]); > $this->belongsToMany('Educations', [ > 'foreignKey' => 'user_id', > 'targetForeignKey' => 'education_id', > 'joinTable' => 'users_educations' > ]); > $this->belongsToMany('Roles', [ > 'foreignKey' => 'user_id', > 'targetForeignKey' => 'role_id', > 'joinTable' => 'users_roles' > ]); > $this->belongsToMany('Subjects', [ > 'foreignKey' => 'user_id', > 'targetForeignKey' => 'subject_id', > 'joinTable' => 'users_subjects' > ]); > } > > /** > * Default validation rules. > * > * @param \Cake\Validation\Validator $validator Validator instance. > * @return \Cake\Validation\Validator > */ > public function validationDefault(Validator $validator) > { > $validator > ->requirePresence('username', 'create') > ->notEmpty('username'); > > $validator > ->requirePresence('password', 'create') > ->notEmpty('password'); > > 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(['username'])); > $rules->add($rules->existsIn(['user_id'], 'Users')); > return $rules; > } > > What i dont get is why the table users belongs to users because that is > what my controller says. now i get a fault saying that: > > SELECT Users.user_id AS `Users__user_id`, Users.username AS > `Users__username`, Users.password AS `Users__password` FROM users Users INNER > JOIN users Users ON Users.user_id = (Users.user_id) LIMIT 20 OFFSET 0 > > gives error: *Error: * > SQLSTATE[42000]: Syntax error or access violation: 1066 Table/alias: > 'Users' non unique > > > -- Like Us on FaceBook https://www.facebook.com/CakePHP Find us on Twitter http://twitter.com/CakePHP --- You received this message because you are subscribed to the Google Groups "CakePHP" group. To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscr...@googlegroups.com. To post to this group, send email to cake-php@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php. For more options, visit https://groups.google.com/d/optout.