Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MODEL:
- class TableasTable extends Table
- {
- /**
- * Initialize method
- *
- * @param array $config The configuration for the Table.
- * @return void
- */
- public function initialize(array $config)
- {
- parent::initialize($config);
- $this->setTable('tableas');
- $this->setDisplayField('name');
- $this->setPrimaryKey('id');
- $this->addBehavior('Timestamp');
- $this->hasMany('tablebs', [
- 'foreignKey' => 'tablea_id',
- 'bindingKey' => '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', null, 'create');
- $validator
- ->scalar('name')
- ->maxLength('name', 22)
- ->requirePresence('name', 'create')
- ->notEmptyString('name');
- return $validator;
- }
- }
- Query:
- $ordersTable = TableRegistry::getTableLocator()->get('Tableas');
- $q = $ordersTable->find('all',['contain'=>['Tablebs']])->execute();
- print_r($q);
- Generated querystring:
- [queryString] => SELECT Tableas.id AS `Tableas__id`, Tableas.name AS `Tableas__name`, Tableas.modified AS `Tableas__modified`, Tableas.created AS `Tableas__created` FROM tableas Tableas
- If I change the model relation to hasOne (the query code is left as is), the generated querystring becomes:
- [queryString] => SELECT Tableas.id AS `Tableas__id`, Tableas.name AS `Tableas__name`, Tableas.modified AS `Tableas__modified`, Tableas.created AS `Tableas__created`, tablebs.id AS `tablebs__id`, tablebs.tablea_id AS `tablebs__tablea_id`, tablebs.name AS `tablebs__name`, tablebs.created AS `tablebs__created`, tablebs.modified AS `tablebs__modified` FROM tableas Tableas LEFT JOIN tablebs tablebs ON Tableas.id = (tablebs.tablea_id)
- What am I missing/ doing wrong in case of the hasMany relation?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement