2011-04-08 35 views
0

我有下面表單助手代碼其中$點是一個變量數組:提交陣列使用CakePHP表單輔助

echo $form->create('Spot', array('controller' => 'spots', 'action' => 'view')); 
        echo $form->hidden('spotdata', array('value' => $spot)); 
        echo $form->end('View'); 

當我在我的控制器的print_r($這個 - >數據)時,spotdata是空的。 formhelper可以接受數組的值嗎?有沒有辦法做到這一點?請讓我知道,謝謝!

回答

1

我注意到你正在發送數據到一個視圖。將ID發送到視圖更加通俗易懂,並且可以從數據庫重新加載數據。在這種情況下,一個鏈接就足夠了:

echo $this->Html->link('View', 
    array('controller' => 'spots', 'action' => 'view', $spot['Spot']['id'])); 

如果你想保持頁面之間的狀態,你會發現它更容易,更安全的使用SessionComponent做到這一點(從客戶端發送回從不信任數據)。在你的控制器的方法,這是那麼容易,因爲:

$this->Session->write('Spot.spotData', $spot); 

$spot = $this->Session->read('Spot.spotData'); 

讀回數據。

1

不,因爲它迴應HTML輸入標籤。該值必須是一個字符串或可以作爲字符串轉換的內容。查看您的HTML源代碼。

+0

k謝謝。我只是循環並回顯每個鍵=>值作爲隱藏輸入 – 2011-04-08 23:37:57

0

除了循環遍歷數組和echo'ing每個鍵,還可以將serialize()數組放在一個隱藏的輸入中。之後你可以deserialize()