|id_main_table|id_category|name|
, у нее есть несколько хвостов table_1, table_2, table_3 и т.д:
|id_table_x|id_main_table|...|...|...|
table_1, table_2, table_3 и т.д связаны с таблицей main_table один к одному. Есть отдельная таблица category:
|id_category|name|
В зависимости от категория соединяется хвост к главной таблице т.е.:
Код: Выделить всё
if($model->id_category === 1) $model->getTable_1()->one();
if($model->id_category === 2) $model->getTable_2()->one();
if($model->id_category === 3) $model->getTable_3()->one();
//и т.д.
Код: Выделить всё
public function actionCreate(){
$model = new MainTable();
if($model->load(Yii::$app->request->post()) && $model->save()){
$transaction = Yii::$app->db->beginTransaction();
if($model->id_category === 1 && Yii::$app->request->post('Table1')){
$table1 = new Table1;
$table1->attributes = Yii::$app->request->post('Table1');
$table1->validate();
if(!$table1->save())
$transaction->rollBack();
}
elseif($model->id_category === 2 && Yii::$app->request->post('Table2')){
$table2 = new Table2;
$table2->attributes = Yii::$app->request->post('Table2');
$table2->validate();
if(!$table2->save())
$transaction->rollBack();
}
elseif($model->id_category === 3 && Yii::$app->request->post('Table3')){...}
...//и т.д.
$transaction->commit();
}
}
Код: Выделить всё
public function actionUpdate(){
$model = $this->findModel($id);
if($model->load(Yii::$app->request->post()) && $model->save()){
$transaction = Yii::$app->db->beginTransaction();
if( $model->id_category === 1 && $model->getTable1()->one()->load(Yii::$app->request->post()) ){
$table1 = $model->getTable1();//Unknown Method – yii\base\UnknownMethodException Calling unknown method: yii\db\ActiveQuery::save()
if(!$table1->save()) $transaction->rollBack ();
}
elseif( $model->id_category === 2 && $model->getTable2()->one()->load(Yii::$app->request->post()) ){
$table2 = $model->getTable2();//Unknown Method – yii\base\UnknownMethodException Calling unknown method: yii\db\ActiveQuery::save()
if(!$table2->save()) $transaction->rollBack ();
}
elseif()
$transaction->commit();
}
}
Unknown Method – yii\base\UnknownMethodException Calling unknown method: yii\db\ActiveQuery::save()
Что делаю не так?