If you use $this->primaryKey($myKey) in your Table model, thats not in the core file and a perfectly valid to do.
But, i would mention that when designing your app, it's better to keep everything (model names etc) in english so the inflector knows how everything is named. /thomas On 01 Sep 2014, at 01:34, Abdelmajid el Ibrahimi <a.elibrah...@gmail.com> wrote: > i just changed the key to leerlingen_id and it works. Just a workaround but i > dont want to screw with the core files. CakePHP is supposed to be easy to use > that means that if i follow the tutorial it should do what is says. > > Op zondag 31 augustus 2014 21:35:59 UTC+2 schreef José Lorenzo: > You also have control over what is the foreignKey to use when creating the > association. Refer the the ORM docs to customize what the query builder is > doing. > > On Sunday, August 31, 2014 7:30:36 PM UTC+2, Abdelmajid el Ibrahimi wrote: > But even if i take that out it still says the same. > > Op zondag 31 augustus 2014 11:45:25 UTC+2 schreef José Lorenzo: > There is no "public $primaryKey" in CakePHP 3.0 > > You may use $this->primaryKey($myKey) inside the initialize() method > > On Sunday, August 31, 2014 3:54:56 AM UTC+2, Abdelmajid el Ibrahimi wrote: > I have made two tables leerlingen and verzorgers. Because these have a many > to many relation i added a table leerlingen_verzorgers. > I have added 3 model tables: > > class VerzorgersTable extends Table { > public $primaryKey = 'verzorger_id'; > > public function initialize(array $config) { > $this->belongsToMany('Leerlingen', > ['through' => 'LeerlingenVerzorgers',]); > $this->addBehavior('Timestamp'); > } > } > > class LeerlingenTable extends Table { > public $primaryKey = 'leerling_id'; > > public function initialize(array $config) { > $this->belongsToMany('Verzorgers', > ['through' => 'LeerlingenVerzorgers',]); > $this->addBehavior('Timestamp'); > } > } > > class LeerlingenVerzorgersTable extends Table { > public function initialize(array $config) { > $this->belongsTo('Leerlingen'); > $this->belongsTo('Verzorgers'); > } > } > > Now when i want to retrieve a verzorger with all the leerlingen i get an > error that he doesn't know the leerlingen_id this is right because it is > leerling_id. But with the verzorgers table he does use the right id and asks > for the verzorger_id. > > My relation table looks like this: > leerlingen_verzorgers > -------------------------- > id > leerling_id > verzorgers_id > jaar > > The generated query looks like this: > > 'SELECT Leerlingen.leerling_id AS `Leerlingen__leerling_id`, > Leerlingen.voornaam AS `Leerlingen__voornaam`, Leerlingen.achternaam AS > `Leerlingen__achternaam`, Leerlingen.geboortedatum AS > `Leerlingen__geboortedatum`, Leerlingen.geslacht AS `Leerlingen__geslacht`, > Leerlingen.email AS `Leerlingen__email`, Leerlingen.opmerking AS > `Leerlingen__opmerking`, LeerlingenVerzorgers.id AS > `LeerlingenVerzorgers__id`, LeerlingenVerzorgers.leerling_id AS > `LeerlingenVerzorgers__leerling_id`, LeerlingenVerzorgers.verzorger_id AS > `LeerlingenVerzorgers__verzorger_id`, LeerlingenVerzorgers.jaar AS > `LeerlingenVerzorgers__jaar` FROM leerlingen AS Leerlingen INNER JOIN > leerlingen_verzorgers LeerlingenVerzorgers ON > (LeerlingenVerzorgers.verzorger_id IN (:c0) AND Leerlingen.leerling_id = > (LeerlingenVerzorgers.leerlingen_id)) > > so first he uses the right leerling_id but at the end he uses leerlingen_id. > Anyone knows what i did wrong? > > > -- > 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. -- 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.