0

i am working on a cakephp 2.x .. right now i have a function called forgetpassword and resetpassword in my userscontroller .. i am sending an email to a user..

i am sending a url like this ..this code is written in the forgetpassword function

 $url = Router::url( array('controller'=>'users','action'=>'resetpassword'), true   ).'/'.$key.'#'.$hash;

and i receive this url in my inbox like this

https://www.myweb.com/resetpassword/y2273727372jhgdfjjd2434dff#23232323

when i click the url which is on my inbox .. it is giving me an error .. not going to the resetpassword function .. instead if i add the controller name behind the function then it successfully loading the page

e.g

 https://www.myweb.com/users/resetpassword/y2273727372jhgdfjjd2434dff#23232323

but i dont want the controller name behind the function in the url

routes.php

   Router::connect('/resetpassword', array('controller' => 'users', 'action'=>'resetpassword'));
4

1 回答 1

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);
于 2013-08-20T08:13:59.560 回答