2012-09-26 51 views
1

我在一個視圖(視圖/ 1)中,我想傳遞一個參數給我的控制器上的一個函數。通過形式傳遞參數CakePHP 2.2

我已經試過這樣:

echo $this->Form->create('Post', array('action' => 'move')); 

但後來,它不通過帕拉姆$ id,這將是對URL。

我已經看到了效果很好的只是在做這個編輯觀點:

echo $this->Form->create('Post'); 

爲什麼不跟我的看法/控制器功能的工作?

另外,如果我試圖把它們像這樣的東西傳遞:

echo $this->Form->create('Post', array('action' => 'move', 1)); 

它打印出這樣的事情:

<form action="/posts/move" 1="1" 

感謝

+0

我認爲這可以幫助http://book.cakephp.org/1.3/en/view/1383/Form –

+0

不,它沒有幫助:)我已經看過2.2文檔。 – Alvaro

回答

2

爲了傳遞參數,你可以簡單地通過參數在行動爲: -

echo $ this-> Form-> create('Post',array('action'=>'move/1'));

在控制器,

調試($這 - >請求 - > PARAMS [ '通'] [0]);

由於編輯視圖已包含正在編輯的帖子的ID,因此我們不需要在form create中顯式傳遞ID。

+0

視圖「視圖」還包含要編輯的帖子的ID。我不能做類似的事嗎?這種方式似乎有點harcoded :) – Alvaro

+0

如果你已經在URL的ID,爲什麼你需要從窗體傳遞它? CakePHP可以從request-> params中檢索這個url。你能澄清一下嗎? –

+0

它的視圖:www.mysite.com/view/4,但我不能創建一個窗體,就像它發生在編輯窗體上一樣。我無法使用「表單助手」創建類似

Alvaro

1

通過它在蛋糕風格:)

echo $this->Form->create('Post', array('action' => array('action' => 'move', 1))); 

- 或 -

echo $this->Form->create('Post', array('url' => Router::url(array('action' => 'move', 1)))); 

,將完成它同時考慮路由考慮。