cakephp从url中删除控制器名称

cakephp从url中删除控制器名称,cakephp,routes,cakephp-2.0,cakephp-2.1,Cakephp,Routes,Cakephp 2.0,Cakephp 2.1,我正在开发cakephp 2.x。。现在我的userscontroller中有一个名为forgetpassword和resetpassword的函数。。我正在向用户发送电子邮件 我正在发送一个类似这样的url..此代码是在forgetpassword函数中编写的 $url = Router::url( array('controller'=>'users','action'=>'resetpassword'), true ).'/'.$key.'#'.$hash; 我在收件箱

我正在开发cakephp 2.x。。现在我的userscontroller中有一个名为forgetpassword和resetpassword的函数。。我正在向用户发送电子邮件

我正在发送一个类似这样的url..此代码是在forgetpassword函数中编写的

 $url = Router::url( array('controller'=>'users','action'=>'resetpassword'), true   ).'/'.$key.'#'.$hash;
我在收件箱中收到这个url,如下所示

当我单击收件箱中的url时。。这给了我一个错误。。不转到resetpassword函数。。相反,如果我在函数后面添加控制器名称,那么它将成功加载页面

e、 g

但是我不希望在url中的函数后面有控制器名称

routes.php

   Router::connect('/resetpassword', array('controller' => 'users', 'action'=>'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);

你不需要这个角色。PHP无论如何都不能使用它。传递的参数的附加方式不同,因此connect()规则也不正确。请尝试
Router::connect('/resetpassword/*',…)
那么connect的正确语法是什么。。。我总是用这个,而且很有效。。但这次我陷入了完全不同的境地。。但是,每当我想删除控制器名称时,我都会这样做this@mark你应该回答这个问题。这样,helloshelkh就可以接受它,你们就可以获得更多的声誉。
Router::url( array('controller'=>'users','action'=>'resetpassword'), true   ).'/'.$key.'#'.$hash;
Router::url(
    array(
        'controller' => 'users', 
        'action' => 'resetpassword',
        $key, // passed param
        '#' => $hash // hash
    ), true);