Elitmiar
Elitmiar

Reputation: 36899

Controller Redirect issue in CakePHP

I have a controller with name users_controller, within the login action I want to redirect to my affiliate_redirect_controller.php, now I the following code in the users controller to redirect

$this->redirect(array(
      'controller'=>'affiliate_redirect',
      'action'=>'logRedirect' ));

And then I get the following error which I can't seem to resolve

Error: The requested address '/affiliate_redirect/logRedirect' was not found on this server.

I honestly do not know what this could be, quite new to cakePHP and none of the solutions found work for me.

the contents of affiliate_redirect_controller.php looks like this

class AffiliateRedirectController extends AppController
{
    var $name = 'AffiliateRedirect';

    function logRedirect(){
     }
}

Upvotes: 0

Views: 511

Answers (3)

Vinayak Phal
Vinayak Phal

Reputation: 8919

I can see there is a mistake in your code its because of naming convention.

$this->redirect(array(
      'controller'=>'affiliate_redirects',
      'action'=>'logRedirect' ));

Please see the above changes when you are writing your controller name in lowercase like above it should be plural affiliate_redirects and should not be affiliate_redirect

Apart from this you can use directly redirect as like this also.

$this->redirect('affiliate_redirects/logRedirect');

Please try, it should work.

Upvotes: 1

nIcO
nIcO

Reputation: 5001

What debug level do you have in app/config/core.php ? Most of the time, when you get the message

Error: The requested address '/controller/action' was not found on this server.

it means you have a debug level set to 0 and increasing it to 1 or 2 allows to get more details about the error.

Upvotes: 0

Rob
Rob

Reputation: 1885

Do you have a table in your database that corresponds to affiliate redirect controller?

You might want to rethink your logic, and use CakePHP routes to set the URL to what you want. Having a controller named affiliate_redirect_controller doesn't follow CakePHP's naming conventions.

Since I don't know exactly what you're trying to do, I don't know if this will work for you, but maybe consider redirecting to a separate action in UsersController like /users/affiliate_redirect/
Or you can create an AffiliatesController and then redirect to /affiliates/redirect/

Also, if you don't have debug mode set to 2, you should do that. It may help reveal what the actual issue is.

Upvotes: 1

Related Questions