【问题标题】:CakePHP Router::url not working correctlyCakePHP Router::url 无法正常工作
【发布时间】:2012-05-06 18:33:09
【问题描述】:

我将 CakePHP 2.0 用于网站的一个小型管理部分。 如果用户正确登录,我会将他们重定向到管理员仪表板。 我这样做如下:

$this->redirect(Router::url(array('controller' => 'admin', 'action' => 'dashboard')));

重定向是正确的,但由于某种原因,它重定向到的 URL 没有正确构建。 URL 的结构如下(注意 URL 中的双 [root] 部分 - 这是错误的):

http://localhost/[root]/[root]/admin/dashboard

当然,它们会显示错误,因为此控制器/操作不存在。 URL 应该不在此表单中:

http://localhost/[root]/admin/dashboard

我似乎无法找到确切的问题,因为 cakePHP 不是我的核心甜点,有没有人可以指出我正确的方向?

谢谢!

【问题讨论】:

  • 你试过在重定向中不使用 Router::url() 吗?
  • 我还没有尝试过,因为我知道 Router::url 方式应该也可以正常工作...一定有特定原因它不起作用,我想知道为什么...不过感谢您的回答!
  • @www.creative-geeks.com:我也遇到了同样的问题。你找到解决办法了吗?
  • @Mohini 我从来没有找到解决方案,我跳过了 CakePHP,因为它不是必须使用它。如果您发现问题,请告诉我!
  • @www.creative-geeks.com:嗯,好的。如果我找到解决方案,一定会通知您。

标签: php routing cakephp-2.0


【解决方案1】:
$this->redirect("YOUR URL");

example $this->redirect('/admins/dashboard');

这样你可以轻松重定向!

【讨论】:

    【解决方案2】:

    您可以在 Router::url 中使用 'full_base' 参数。 例如

    $url = Router::url( array( 
        'controller' => 'posts',
        'action' => 'view',
        'id' => $post[id],
    
        'full' => true
        ) );
    

    这将为您提供完整的基本网址。当我在 localhost 的子目录中运行 CakePHP 时,我发现了这个固定的路由问题。

    【讨论】:

      【解决方案3】:

      你可以这么简单

      $this->redirect(array('controller' => 'admins', 'action' => 'dashboard'));
      

      【讨论】:

        【解决方案4】:

        你可以简单地纠正这个
        Router::connect('/', array('controller' => 'users', 'action' => 'index'));

        【讨论】:

          猜你喜欢
          • 2013-05-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多