簡體   English   中英

如何在Yii 1.7中通過遞歸方式將具有HAS_MANY關系的MySql表中的數據保存

[英]How to save data in the MySql tables with HAS_MANY relation by recursive way in Yii 1.7

我有JSON數據,我想一次將所有數據保存在數據庫中。 鏡像中顯示的數據庫模式。 所以我可以在這里看到二階HAS_MANY關系。 esaverelatedbehavior中的esaverelatedbehavior允許我僅保存一階數據,例如company_* 有什么辦法可以一次將所有數據保存到所有表嗎? 在此處輸入圖片說明

通過一個插入查詢無法將數據插入到多個表中

您必須使用事務來執行許多插入

public function saveJsonData()
{

    /**
     * parsing your json data
     */

    $transaction = Yii::app()->db->beginTransaction();

    try {
        $company = new Company();
        $company->setAttributes($company_data);

        if (!$company->save()) {
            throw new Exception('some exception');
        }

        foreach ($otherCompanyRelatedDataList as $data) {
            $otherCompanyData = new OtherCompanyData();
            $otherCompanyData->setAttributes($data);
            if (!$otherCompanyData->save()){
                throw new Exception('some exception');
            }
        }

        /**
         *  save other data
         */


        $transaction->commit();

    } catch (Exception $e) {
        $transaction->rollback();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM