Forms 在使用CakePHP FormHelper提交post表单时传递URL变量时出现问题

Forms 在使用CakePHP FormHelper提交post表单时传递URL变量时出现问题,forms,cakephp,post,get,form-helpers,Forms,Cakephp,Post,Get,Form Helpers,我正在编写我的第一个CakePHP应用程序,并且正在编写密码重置表单的第二部分,其中用户收到一封包含站点链接的电子邮件,当他们单击该电子邮件时,他们会被要求输入并确认新密码 页面的url如下所示: /users/reset_password_confirm/23f9a5d7d1a2c952c01afacbefaba41a26062b17 该视图类似于: <?php echo $form->create('User', array('action' => 'reset_pass

我正在编写我的第一个CakePHP应用程序,并且正在编写密码重置表单的第二部分,其中用户收到一封包含站点链接的电子邮件,当他们单击该电子邮件时,他们会被要求输入并确认新密码

页面的url如下所示:

/users/reset_password_confirm/23f9a5d7d1a2c952c01afacbefaba41a26062b17
该视图类似于:

<?php echo $form->create('User', array('action' => 'reset_password_confirm')); ?>
<?php 
    echo $form->input('password', array('label' => 'Password'));
    echo $form->input('confirm_password', array('type' => 'password', 'label' => 'Confirm password'));
    echo $form->hidden('static_hash');
?>
<?php echo $form->end('Reset password'); ?>
$static\u hash
现在填充为8,而不是URL中的hash

我知道我可以通过自己创建表单标签而不是使用
$form->create
来解决这个问题,但是有没有更简单的方法呢

$form->create('User', array('action' => '…', 'id' => false));
只需显式设置不希望传递给
null
false
的参数。不幸的是,这是一个蛋糕为了自身利益而试图变得过于聪明的例子;o)

您也可以这样做,再次发布到相同的URL:

$form->create('User', $this->here);
只需显式设置不希望传递给
null
false
的参数。不幸的是,这是一个蛋糕为了自身利益而试图变得过于聪明的例子;o)

您也可以这样做,再次发布到相同的URL:

$form->create('User', $this->here);

不如将其作为参数而不是表单数据传递:

<?php
echo $form->create('User', array('action' => 'reset_password_confirm', $static_hash));
    echo $form->input('password', array('label' => 'Password'));
    echo $form->input('confirm_password', array('type' => 'password', 'label' => 'Confirm password'));
echo $form->end('Reset password');
?>

希望获得以下帮助:)

将其作为参数而不是表单数据传递如何:

<?php
echo $form->create('User', array('action' => 'reset_password_confirm', $static_hash));
    echo $form->input('password', array('label' => 'Password'));
    echo $form->input('confirm_password', array('type' => 'password', 'label' => 'Confirm password'));
echo $form->end('Reset password');
?>
希望这有帮助:)

function reset_password_confirm($static_hash = null) {

// Check if form is submitted
if (!empty($this->data)) {
  // if it submitted then do your logic
} else {
  $this->set('static_hash', $static_hash); // Else, pass the hash to the view, so it can be passed again when form is submitted
}

}