addAssociations() public method

It takes an array containing set of table names indexed by association type as argument: $this->Posts->addAssociations([ 'belongsTo' => [ 'Users' => ['className' => 'App\Model\Table\UsersTable'] ], 'hasMany' => ['Comments'], 'belongsToMany' => ['Tags'] ]); Each association type accepts multiple associations where the keys are the aliases, and the values are association config data. If numeric keys are used the values will be treated as association aliases.
See also: Cake\ORM\Table::belongsTo()
See also: Cake\ORM\Table::hasOne()
See also: Cake\ORM\Table::hasMany()
See also: Cake\ORM\Table::belongsToMany()
public addAssociations ( array $params ) : void
$params array Set of associations to bind (indexed by association type)
return void
Example #1
0
 /**
  * Test addAssociations()
  *
  * @return void
  */
 public function testAddAssociations()
 {
     $params = ['belongsTo' => ['users' => ['foreignKey' => 'fake_id', 'conditions' => ['a' => 'b']]], 'hasOne' => ['profiles'], 'hasMany' => ['authors'], 'belongsToMany' => ['tags' => ['joinTable' => 'things_tags']]];
     $table = new Table(['table' => 'dates']);
     $table->addAssociations($params);
     $associations = $table->associations();
     $belongsTo = $associations->get('users');
     $this->assertInstanceOf('Cake\\ORM\\Association\\BelongsTo', $belongsTo);
     $this->assertEquals('users', $belongsTo->name());
     $this->assertEquals('fake_id', $belongsTo->foreignKey());
     $this->assertEquals(['a' => 'b'], $belongsTo->conditions());
     $this->assertSame($table, $belongsTo->source());
     $hasOne = $associations->get('profiles');
     $this->assertInstanceOf('Cake\\ORM\\Association\\HasOne', $hasOne);
     $this->assertEquals('profiles', $hasOne->name());
     $hasMany = $associations->get('authors');
     $this->assertInstanceOf('Cake\\ORM\\Association\\hasMany', $hasMany);
     $this->assertEquals('authors', $hasMany->name());
     $belongsToMany = $associations->get('tags');
     $this->assertInstanceOf('Cake\\ORM\\Association\\BelongsToMany', $belongsToMany);
     $this->assertEquals('tags', $belongsToMany->name());
     $this->assertSame('things_tags', $belongsToMany->junction()->table());
 }