我有一個基於JavaScript的頁面,其中一個網格顯示註冊用戶從數據庫中獲取的所有數據。在UI中,我還有列名爲'groups'每個用戶都參與的組,但是這個信息是通過額外的兩個額外的表格獲得的 - 包含'id'和'group_name'列的'groups',以及'user_id'和'group_id'列作爲列的'users_groups'表它們是與「用戶」和「組」表相關聯的外鍵。CodeIgniter MVC和在一個函數中更新兩個不同的表格
問題是,當你點擊編輯任何用戶從UI網格有一個AJAX發佈JSON來包含用戶的信息,其中包括 '組'列實際上不是'用戶'表。所以我有這樣的:
$data = json_decode($this->input->post('data'), true);
最初時(但不添加組)在此轉化:
$data = array(
'id' => $data['id'],
'email' => $data['email'],
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'usertype' => $data['usertype']
);
然後解析到一個名爲「mUsers」的模型,其中是更新功能:
$query = $this->mUsers->update($data);
而且由於現在的模型是非常簡單的,因爲只有一個表:
public function update($data)
{
$this->db->where('id', $data['id']);
$query = $this->db->update('users', $data);
return true;
}
但現在我必須更新另一個表 - 「users_groups」,我想我的options.Is它可能只是添加到$ data數組顯示上方的另一紀錄:
'groups' => $data['groups']
並嘗試在一個函數中實現所有的邏輯(如果這甚至可能,我不能找到信息,如果我可以在一個函數中有兩個不同的活動記錄查詢),或者我想到的第二件事是在解碼JSON之後進行如下操作:
$dataGroups = array(
'groups' => $data['groups'] //adding groups data to be fetched for update
);
然後解析數據到一個新的函數, ke:
$q = $this->mUsers->updateGroups($dataGroups);
這種情況下更好的方法是什麼?
感謝 Leron
我看到now.In這種情況下,我們可以讓公共職能updateUserGroup($用戶ID,$用戶組)私有,這將只叫如果我的主意正確無誤,請更新用戶表單? – Leron 2012-04-03 11:46:59
把它公開,你可以把它叫做updateUser之外的,在未來的開發中 – safarov 2012-04-03 11:48:56
好的,謝謝,會用它<3;) – Leron 2012-04-03 11:52:36