【问题标题】:CakePHP passing parameters to actionCakePHP 将参数传递给动作
【发布时间】:2010-03-19 15:25:25
【问题描述】:

嗨,我是 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>

【问题讨论】:

    标签: cakephp parameters action parameter-passing


    【解决方案1】:

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

    将其他参数附加到表单提交 url $form->create('事件', 数组( 'url' => 数组('something', 'somethingelse') ));

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

    【讨论】:

    • 谢谢,完全做到了......我有很多问题......:D
    【解决方案2】:

    我不太喜欢使用一些帮助程序(如 $html)或一些方法(如 $form 的 create() 和 end())。我有点没明白你的问题,但我认为可能是你必须向你实际进入的同一个 url 发出 POST 请求。

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

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

    【讨论】:

    • 好的,我有一个带有选项的菜单,要访问此菜单,我传递了一个参数,例如:localhost/mobile/events/add/1,但是当我单击菜单选项时,页面刷新并且我得到了这个:@ 987654322@ ,所以我输入的参数 1 丢失了,脚本收到一个默认值 cero .. 基本上我试图坚持 URL 参数..
    • 那就这样吧。尝试使用 $this->here 作为表单操作。
    【解决方案3】:

    您可能想尝试使用named parameters

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

    cakephp adding record with some parameters fixed

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      相关资源
      最近更新 更多