Yii 1 — удаление строки после сохранения строки в другой таблице

У меня есть 2 таблицы со следующей структурой:

Store(name, model, serial_number)
Work(name, model, serial_number, adress)

Когда я добавляю запись в таблицу Work, я получаю данные с ListData из таблицы Store. Проблема заключается в следующем: как я могу удалить строку из Store после того, как я сохраню ее в Work?

public function actionCreate()
{

$model=new Work;

// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);

if(isset($_POST['Work']))
{
$model->attributes=$_POST['Work'];

if($model->save()) {

$this->redirect(array('view','id'=>$model->id));}

}

$this->render('create',array(
'model'=>$model,

));

}

Я пытался написать запросы в if($model->save) блок, но я не знаю, как удалить строку serial_number,

Я думаю, что я должен использовать транзакции, но я не знаю, как использовать это в моем примере.

0

Решение

Вы должны определить свой store для удаления. Вы не объяснили, как связаны эти две модели. Если serial_number поле из двух моделей одинаковое, вы можете найти store с serial_number из work а затем удалите его. В этом случае вы можете сделать следующее:

if(isset($_POST['Work']))
{
$model->attributes=$_POST['Work'];

if($model->save()) {
Store::model()->deleteAll("serial_number = " . $model->serial_number);
$this->redirect(array('view','id'=>$model->id));

}

}

В противном случае вы должны определить связь между двумя моделями.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]