public function prepareData() { $d = new T1(); $d->t1_id = 1; $d->t2_id = 1; $d->save(); $d = new T2(); $d->t2_id = 1; $d->hello_id = 10; $d->save(); for ($i = 0; $i < 10; $i++) { $t3 = new T3(); $t3->hello_id = 10; $t3->save(); } }
/** * @return \yii\db\ActiveQuery */ public function getT2() { return $this->hasOne(T2::className(), ['col_id' => 'col_id']); }
<?php trait T { static function foo() { echo "I'm in class " . get_class() . "\n"; } } class C { use T; } class D extends C { } trait T2 { use T; } trait T3 { use T2; } $x = new D(); $x->foo(); C::foo(); D::foo(); T::foo(); T2::foo(); T3::foo();
public function testForAutoIncrement() { $t1 = new T1(true); $primaryKey = key($t1->getPrimaryKey(true)); $this->assertNotContains($primaryKey, json_encode($t1->rules())); $t1->attributes = Data::$dataForNotNullColumnsArray; $t1->attributes = Data::$dataDefaultSQLValidForNotNullColumnsArray; $t1->attributes = Data::$dataStrictSQLValidForNotNullColumnsArray; $t1->attributes = Data::$dataPrimaryKeyArray; $result = $t1->save(); $this->assertCount(0, $t1->getErrors()); $t2 = new T2(false); $primaryKey = key($t2->getPrimaryKey(true)); $this->assertContains($primaryKey, json_encode($t2->rules())); $t1->attributes = Data::$dataForNotNullColumnsArray; $t1->attributes = Data::$dataDefaultSQLValidForNotNullColumnsArray; $t1->attributes = Data::$dataStrictSQLValidForNotNullColumnsArray; $t1->attributes = Data::$dataPrimaryKeyArray; $result = $t1->save(); }