我在兩個表之間有一個HABTM關係:items
和locations
,使用表items_locations
加入它們。CakePHP一次編輯多條記錄
items_locations
也存儲更多信息。這裏的架構
items_locations(id, location_id, item_id, quantity)
我想馬上建立一個網頁,其中顯示了一個位置的所有項目,並讓用戶通過一個DataGrid風格界面,編輯多個領域:
Location: Factory XYZ
___________________________
|___Item____|___Quantity___|
| Widget | 3 |
| Sprocket | 1 |
| Doohickey | 15 |
----------------------------
爲了解決這個問題,我有一個名爲InventoryController
控制器,它具有:
var $uses = array('Item', 'Location'); // should I add 'ItemsLocation' ?
如何構建多維形式來編輯這些數據?
編輯:
我試圖讓我的數據看起來像Deceze如何下面描述,但我又遇到了問題......
// inventory_controller.php
function edit($locationId) {
$this->data = $this->Item->ItemsLocation->find(
'all',
array(
"conditions" => array("location_id" => $locationId)
)
);
當我這樣做,$this->data
出來是這樣的:
Array (
[0] => Array (
[ItemsLocation] => Array (
[id] => 16
[location_id] => 1
[item_id] => 1
[quantity] => 5
)
)
[1] => Array (
[ItemsLocation] => Array (/* .. etc .. */)
)
)
現在有更多的意義..雖然我仍然打磚牆。介意看看我編輯原始帖子? – nickf 2009-09-04 04:23:53
那麼,當你找到**數據時,格式會稍有不同。我在說的是**將表單發佈到控制器的正確格式**在接收到POST數據後,在控制器中嘗試一個'debug($ this-> data)'。 – deceze 2009-09-04 05:15:19
但是你不需要這種格式的視圖能夠做一些類似於:'$ form-> input('ItemsLocation.0.id')' – nickf 2009-09-04 05:51:39