2012-09-26 46 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)))); 

,将完成它同时考虑路由考虑。