【问题标题】:cakephp routing issue after adding a plugin添加插件后cakephp路由问题
【发布时间】:2012-04-09 14:35:55
【问题描述】:

我在 app/plugins 中添加了 CakeDC-Users 插件。

现在http://example.com/,如果我点击主页/索引链接,它会错误地重定向到http://example.com/users/posts/index,但它应该是http://example.com/posts/index

为什么总是在相应控制器之前添加插件“用户”?

如果我从 app/Plugin 中删除 CakeDC-Users 插件并从 bootstrap.php 中删除该行 CakePlugin::loadAll(); 然后我得到正常的链接/路由

routes.php:

Router::connect('/', array('controller' => 'posts', 'action' => 'index'));

如何通过 CakeDC-Users 插件解决这个问题

【问题讨论】:

    标签: php cakephp routing routes cakephp-2.0


    【解决方案1】:

    这就是访问插件的方式。你可以这样定义你的自定义路由

    Router::connect('/posts', array('controller' => 'posts', 'plugin' => 'users'));
    

    这将在 app/Config/routes.php 中完成

    如果是链接问题,您必须明确指定

    echo $this->Html->link('link', array(
                                     'controller' => '', 
                                     'action' => '', 
                                     'plugin' => false)
                          );
    

    但我更喜欢自定义路由。

    欲了解更多信息,您可以随时潜入CookBook

    【讨论】:

    • 我是否必须在每个链接中明确写 'plugin'=>false ?我在 routes.php 中有这个,Router::connect('/', array('controller' => 'posts', 'action' => 'index'));
    • @prime 是的,如果您不定义路由,则必须显式定义插件 => false.. 如果您在插件之外会很好,但是一旦您在插件内部导航那么这些链接就会有问题。
    • 有什么办法可以避免为所有链接手动添加'plugin'=>false?
    • @prime 你可以通过使用路由来避免这种情况
    • 怎么样?可以举例说明吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2012-11-28
    • 2014-09-08
    • 2012-08-23
    • 2016-04-07
    • 2016-07-18
    相关资源
    最近更新 更多