【问题标题】:CakePHP routing not redirecting correctlyCakePHP 路由没有正确重定向
【发布时间】:2014-11-28 06:35:50
【问题描述】:

我有一个问题,我不知道出了什么问题。

我已经建立了一个基本的身份验证系统,简单的一个。但我注意到侧边栏中的 URL- 与从 cakephp 生成的 URL- 不同,例如:

http://localhost/sitename/users

是显示在工具栏上的 url。

当我这样做时:

echo Router::url($this->here, true ); 

结果是:

http://localhost/sitename/sitename/users

该网站仍然可以运行,但会一次又一次地产生错误,例如:

http://localhost/sitename/sitename/users/ 

Missing Controller

Error:  SitenameController could not be found.

Error:  Create the class SitenameController below in file: app\Controller\SitenameController.php
<?php class SitenameController extends AppController {

}

所以我不知道是什么导致了问题... 如果有人,任何人都可以帮助我,我会非常感谢它......

非常感谢。

【问题讨论】:

    标签: cakephp cakephp-2.0 cakephp-2.1 cakephp-2.3


    【解决方案1】:

    您的应用位于子目录中,因此您应该使用

    Router::url(null, true);
    

    如果$url 参数是null 该方法将找到实际控制器/动作的地址。阅读更多here

    从书中:

    $this-&gt;request-&gt;here 包含当前请求的完整地址。

    完整地址也包括子目录。因此,如果您使用 Router::url() 并将 $full 参数设置为 true 它会“复制”子目录。

    【讨论】:

    • 感谢您的重播@rocknrollcanneverdie。但我担心的是为什么会这样生成,我的意思是当错误发生时,或者更具体地说,如何防止这种错误。
    • 缺少控制器错误的原因是错误的URL。如果您按照上面的答案,您可以避免 CakePHP 生成的错误 URL。
    • Router::connect("/", array("controller" =&gt; "users", "action" =&gt; "index","home")); //Router::connect("/", array("controller" =&gt; "pages", "action" =&gt; "display", "home")); Router::connect("/pages/*", array("controller" =&gt; "pages", "action" =&gt; "display")); CakePlugin::routes(); require CAKE . "Config" . DS . "routes.php"; 这是我的路线,我不知道问题出在哪里:/..?? @rocknrollcanneverdie
    猜你喜欢
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 2011-04-17
    相关资源
    最近更新 更多