Ответы пользователя по тегу MySQL
  • Yii. Каким образом лучше сделать insert через одну форму сразу в несколько таблиц в БД?

    @olegf13
    Можно сделать отдельный экшн контроллера с примерно следующим:
    <?php
    $dbTransaction = $Yii::app()->db->getCurrentTransaction();
    if (!$dbTransaction) {
    	$dbTransaction = Yii::app()->db->beginTransaction();
    }
    
    $productModel = new Product;
    $productModel->attributes = $prodAttrs;
    if (!$productModel->save()) {
    	$dbTransaction->rollback();
    	throw new CException("some");
    }
    
    foreach ($productModes as $productModeAttrs) {
    	$productModeModel = new productMode;
    	$productModeModel->attributes = $productModeAttrs;
    	$productModeModel->product_id = $productModel->id;
    	if (!$productModeModel->save()) {
    		$dbTransaction->rollback();
    		throw new CException("some");
    	}
    }
    
    // похожее с фото товаров
    
    $dbTransaction->commit();
    
    // redirect/render/return метода контроллера
    Ответ написан
    Комментировать