我正在开发一个cakephp 2.x ..现在我在我的userscontroller中有一个名为forgetpassword和resetpassword的函数..我正在向用户发送一封电子邮件..
我发送的是这样的网址..这段代码是用forgetpassword函数编写的
$url = Router::url( array('controller'=>'users','action'=>'resetpassword'), true ).'/'.$key.'#'.$hash;
我在收件箱中收到此网址
https://www.myweb.com/resetpassword/y2273727372jhgdfjjd2434dff#23232323
当我点击我的收件箱中的网址时...它给了我一个错误..没有去复位密码函数..相反,如果我在函数后面添加控制器名称,那么它成功加载页面
例如
https://www.myweb.com/users/resetpassword/y2273727372jhgdfjjd2434dff#23232323
但我不想在url
中使用函数后面的控制器名称routes.php文件
Router::connect('/resetpassword', array('controller' => 'users', 'action'=>'resetpassword'));
答案 0 :(得分:1)
Router::connect('/resetpassword', ...)
意味着,你没有使用任何东西作为传递参数等。 但你这样做,所以正确的是:
Router::connect('/resetpassword/*', ...)
另请注意
Router::url( array('controller'=>'users','action'=>'resetpassword'), true ).'/'.$key.'#'.$hash;
是错误的,应该是 - 如记录所示:
Router::url(
array(
'controller' => 'users',
'action' => 'resetpassword',
$key, // passed param
'#' => $hash // hash
), true);