我正在編寫我的第一個CakePHP應用程序,並且剛剛編寫密碼重置表單的第二部分,其中用戶收到包含該網站鏈接的電子郵件,以及何時點擊它,他們被要求輸入並確認一個新的密碼。在使用CakePHP提交表單提交時傳遞URL變量的問題FormHelper
的頁面的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'); ?>
然而這產生一個形式,如:
<form id="UserResetPasswordConfirmForm" method="post" action="https://stackoverflow.com/users/reset_password_confirm/8">
的問題是用戶標識(本例中爲8)將被添加到表單操作中。這不是一個真正的問題在這裏,但我想通過哈希傳遞給我的控制器:
function reset_password_confirm($static_hash=null) {
// function body
}
$static_hash
現在填充了8,而不是從URL哈希值。
我知道我可以通過自己創建表單標籤而不是使用$form->create
來解決這個問題,但是有沒有更好的方法來做到這一點?