0

如何在一個表單中顯示不同表格的字段並將其一次保存在數據庫中......該方案是當我得到一個新表格填滿時,這兩個表格將合併在相同的表格中,並可能同時保存。第二個問題是,「表格」的「id」(PK)會在保存後遞增生成數字。問題是我怎麼可以在「形式」,「ID」(PK)的值複製到「forminfo_info」(FK),同時節省了......請需要對這種援助..Yii2高級以一種形式顯示和保存兩個表格的字段

enter image description here

+0

您可以實際顯示圖像... – Ian

+0

您可以查看圖像。它被鏈接在文本中... –

+0

Nvm,我已經爲你做了。關鍵是要在同一頁面中製作圖像和問題,以便人們可以更輕鬆地查看圖像並將其鏈接到您的問題。歡迎來到堆棧溢出! – Ian

回答

0

很多你的問題真的解釋了here in the Yii2 guide

無論如何,這裏是我會嘗試在你的actionUpdate/actionCreate控制器。 (注:此代碼沒有經過測試,所以可能需要一些修正,但整體結構應該工作)

// Create empty models, typically for actionCreate() 
$m1 = new Model(); 
$m2 = new AnotherModel(); 

// ...or load models using ids for actionUpdate($m1Id, $m2Id) 
$m1 = Model::findOne($m1Id); 
$m2 = AnotherModel::findOne($m2Id); 

// Try to populate the models from the request 
if ($m1->load(Yii::$app->request->post()) && $m2->load(Yii::$app->request->post())) { 
    // Models now loaded, but not validated 
    if ($m1->validate() && $m2->validate()) { 
     // Both models are now validated, save the first one 
     $m1->save(false); // No need to validate again 
     // Now Model has an id, save its id as a reference in AnotherModel 
     $m2->m1Id = $m1->id; 
     // ...or create a method in your Model-model for setting the foreign key 
     // $m2->connectModel($m1); // The fancier object oriented way 
     $m2->save(false); // Set true if you validate the foreign key 
    } 
} 

// Return view for rendering 

如果有兩個保存,操作失敗(代碼未測試)是那種可能應該處理的致命錯誤。最糟糕的情況是,您最終可能會保存一個模型,而不是另一個模型,但如果驗證通過,則不太可能。如果你的數據庫支持它,查看「原子」保存事務(全部或全部保存),或者留下它(我認爲大多數情況下只留下它或稍後記錄一個錯誤)。

+0

謝謝@ karpy47。生病得去試試這個代碼... :) –