我有一个名为users_controller的控制器,在我要重定向到我的affiliate_redirect_controller.php的登录操作中,现在我在用户控制器中的以下代码重定向
$this->redirect(array(
'controller'=>'affiliate_redirect',
'action'=>'logRedirect' ));
然后我得到以下错误,我似乎无法解决
Error: The requested address '/affiliate_redirect/logRedirect' was not found on this server.
老实说,我不知道这可能是什么,对CakePHP来说还是一个新手,并没有找到适合我的解决方案。
affiliate_redirect_controller.php的内容如下所示
class AffiliateRedirectController extends AppController
{
var $name = 'AffiliateRedirect';
function logRedirect(){
}
}
答案 0 :(得分:1)
您的数据库中是否有与affiliate redirect controller对应的表?
您可能想重新考虑您的逻辑,并使用CakePHP路由将URL设置为您想要的。拥有名为affiliate_redirect_controller的控制器不遵循CakePHP的命名约定。
由于我不确切知道您要做什么,我不知道这是否适合您,但可能会考虑重定向到像/users/affiliate_redirect/
这样的UsersController中的单独操作
或者,您可以创建AffiliatesController
,然后重定向到/affiliates/redirect/
此外,如果您没有将调试模式设置为2,则应该这样做。它可能有助于揭示实际问题。
答案 1 :(得分:1)
由于命名约定,我可以看到代码中存在错误。
$this->redirect(array(
'controller'=>'affiliate_redirects',
'action'=>'logRedirect' ));
当你用小写字母编写控制器名称时,请看上面的更改,它应该是复数affiliate_redirects
,不应该是affiliate_redirect
除此之外,你也可以像这样使用直接重定向。
$this->redirect('affiliate_redirects/logRedirect');
请尝试,它应该有效。
答案 2 :(得分:0)
你在app / config / core.php中有什么调试级别?大多数情况下,当你收到消息时
Error: The requested address '/controller/action' was not found on this server.
这意味着您将调试级别设置为0并将其增加到1或2可以获得有关错误的更多详细信息。