Forms 在使用CakePHP FormHelper提交post表单时传递URL变量时出现问题
我正在编写我的第一个CakePHP应用程序,并且正在编写密码重置表单的第二部分,其中用户收到一封包含站点链接的电子邮件,当他们单击该电子邮件时,他们会被要求输入并确认新密码 页面的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
/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
}
}