hasOne() public method

Add hasOne field.
public hasOne ( string $link, array $defaults = [] ) : Reference_One
$link string
$defaults array
return Reference_One
コード例 #1
0
ファイル: ReferenceTest.php プロジェクト: atk4/data
 public function testModelProperty()
 {
     $db = new Persistence();
     $user = new Model($db, ['table' => 'user']);
     $user->id = 1;
     $user->hasOne('order_id', ['model' => ['atk4/data/Model', 'table' => 'order']]);
     $o = $user->ref('order_id');
     $this->assertEquals('order', $o->table);
 }
コード例 #2
0
ファイル: ConditionTest.php プロジェクト: atk4/data
 public function testEditableHasOne()
 {
     $gender = new Model();
     $gender->addField('name');
     $m = new Model();
     $m->addField('name');
     $m->hasOne('gender_id', $gender);
     $this->assertEquals(false, $m->getElement('gender_id')->system);
     $this->assertEquals(true, $m->getElement('gender_id')->isEditable());
 }
コード例 #3
0
ファイル: FieldTest.php プロジェクト: atk4/data
 public function testTitle()
 {
     $db = new Persistence_SQL($this->db->connection);
     $a = ['user' => [1 => ['id' => 1, 'name' => 'John', 'surname' => 'Smith', 'category_id' => 2]], 'category' => [1 => ['id' => 1, 'name' => 'General'], 2 => ['id' => 2, 'name' => 'Programmer'], 3 => ['id' => 3, 'name' => 'Sales']]];
     $this->setDB($a);
     $c = new Model($db, 'category');
     $c->addField('name');
     $m = new Model($db, 'user');
     $m->addField('name');
     $m->hasOne('category_id', $c)->addTitle();
     $m->load(1);
     $this->assertEquals('John', $m['name']);
     $this->assertEquals('Programmer', $m['category']);
     $m->insert(['Peter', 'category' => 'Sales']);
     $a = ['user' => [1 => ['id' => 1, 'name' => 'John', 'surname' => 'Smith', 'category_id' => 2], 2 => ['id' => 2, 'name' => 'Peter', 'surname' => null, 'category_id' => 3]], 'category' => [1 => ['id' => 1, 'name' => 'General'], 2 => ['id' => 2, 'name' => 'Programmer'], 3 => ['id' => 3, 'name' => 'Sales']]];
     $this->assertEquals($a, $this->getDB());
 }