2013-01-16 41 views
1

背景CakePHP的 - 一種觀點認爲,多重嵌套形式,多表

他們給我寫一個小企業的在線數據庫的任務。這個數據庫將包括大量的信息以及他們的董事和分支機構的信息。由於任何企業都可以擁有無​​限數量的董事和分支機構,因此我需要創建一個不僅限於一名董事和/或分支機構的數據庫。

我有什麼

目前,我有3個表。

smmes [id, company_name, trading_name, business_address, registration_number, tax_reference, vat_number, bbbee_status, employees, awards, created, modified] 
ownerships [id, smme_id, name, surname, gender, age, race, disability, qualification, created, modified] 
branches [id, smme_id, location, contact_number, contact_person, created, modified] 

注意:smme_id是分支機構或董事所屬smmes公司的ID。

而且我對SMME有一個看法。

什麼是我的問題

我很新的CakePHP的(其實,這是我的第一個應用程序我創建使用CakePHP)。我想知道如何製作一個表單,用戶可以輸入所有這些細節,然後從一個視圖添加所有導演和分支的詳細信息。我寧願他們沒有各種意見去創造所有的細節。除此之外,這個視圖應該使用正確的smme_id將所有數據保存到正確的表中。

這是可能的,或者我應該離開cakePHP並手動編寫它。

回答

1

您可以在您的控制器中按需加載模型,然後將模型特定數據(從發佈表單接收)傳遞到加載模型的保存方法。

public function detail(){ 

    if($this->request->is('post')): // update only when form is posted 

     $this->loadModel('ownerships'); 
     $owner_name= $this->request->data['Ownername']; 
     $ownerships_data = array('Ownership' = > array(
          'name' = > $owner_name 
          //add other keys from posted form 
          ) 
         ); 
     $this->Ownership->saveAll($ownerships_data); 
    // load other models for saving posted data in related tables 
    endif; 
} 

同樣載入其他模型並將數組中的字段作爲數組傳遞給它的存儲方法。 假設URL格式爲http://example.com/director/detail。所以你想提出上述方法(稱爲在MVC術語行動)在app/controllers/directors_controller.php

一般來說,如果URL格式爲http://somesite.com/abc/xyz它會尋找xyz行動 app/controllers/abcs_controller.php

你可以閱讀更多關於蛋糕大會的信息here

+0

感謝您的回答。如上所述,我對cakePHP非常陌生。這會去哪個文件? – Albert

+0

您的控制器 – icebreaker