CakePHP将参数传递给动作

时间:2010-03-19 15:25:26

标签: cakephp parameters action parameter-passing

你好,我在cakephp有点新,调整很麻烦..这是我最大的问题..

我试图将一个参数传递给一个动作,它确实加载了,但是当我的脚本从控制器转到视图,再次返回控制器时,它就消失了。

控制器代码

 function add($mac = 0)
{


if(isset($this->params['form']['medico'])) 
{

 $temp= $this->Person->find('first', array('conditions' => array('smartphones_MAC' => $mac)));
 $id= $temp['Person']['id'];

$this->Union->set('events_id', $id+1);
$this->Union->set('people_id', $id);
$this->Union->save();

}

查看代码(这是一个菜单,我现在只有一个按钮)

 <fieldset>

 <legend>SELECCIONE SU ALERTA</legend>

 <?php 

  echo $form->create('Event'); 

  echo $form->submit('EMERGENCIA MEDICA',array('name'=>'medico')); 

  echo $form->end();

  ?> 

  </fieldset>

3 个答案:

答案 0 :(得分:12)

创建表单时,不包含其他url参数或字段作为输入。如果没有这些参数,参数将会消失,因为它们不是新请求的一部分。您可以使用

将其他参数附加到表单提交网址
$form->create('Event', array(
    'url' => array('something', 'somethingelse')
));

这将创建一个指向/events/add/something/somethingelse的表单。

答案 1 :(得分:0)

我不喜欢使用一些助手(比如$ html)或一些方法(比如$ form的create()和end())。我有点没有得到你的问题,但我认为你可能需要向你实际进入的同一个网址发出POST请求。

<form method="GET" action="<?=$this->here ?>">

也许你应该进一步解释你想要达到的目标。

答案 2 :(得分:0)

您可能想尝试使用named parameters

我问了一个类似的问题,你可能会觉得有帮助:

cakephp adding record with some parameters fixed