【问题标题】:CakePHP Global slug routerCakePHP 全球 slug 路由器
【发布时间】:2012-02-09 15:20:15
【问题描述】:

我已经为我的所有帖子配置了 slug,我需要 Router 来执行以下链接:

/controller/post_slug_name 我所有的控制器都需要这个,但是当我去的时候:

Router::connect('/admin', array('admin' => true, 'controller' => 'settings', 'action' => 'dashboard'));
Router::connect('/:controller/:slug', array('action' => 'index'), array('pass' => array('slug')));

管理面板不工作。我怎样才能使它像这样,简单,并且管理面板工作?谢谢

编辑: 有了这些树路由器,我就可以按照我的意愿工作了,除了在控制面板中,我什至可以在 url 中获取索引操作,而不是很酷

Router::connect('/admin', array('admin' => true, 'controller' => 'settings', 'action' => 'dashboard'));
Router::connect('/admin/:controller/:action/*', array('admin' => true));
Router::connect('/:controller/:slug', array('action' => 'index'), array('pass' => array('slug')));

【问题讨论】:

  • admin 路由和 slug 路由有什么关系?

标签: cakephp seo router slug


【解决方案1】:

尝试连接/admin/* 而不仅仅是/admin

【讨论】:

  • 这样,不管控制器是什么,我都得到'controller' => 'settings', 'action' => 'dashboard'
  • 我也使用 '/admin' 路由,它对我有用,当您访问 /admin url 时它究竟呈现什么,它是否报告警告,日志中的任何内容?!
【解决方案2】:

我没有尝试过,所以我不确定它是否有效,但请尝试以下...

Router::connect('/:controller/:slug', array('action' => 'view:slug'));

你的视图函数也需要接受$slug作为参数:

function view($slug){
     ...
}

如果上述方法不起作用,您也可以试试这个:

Router::connect('/:controller/*',array('action' => 'view'));  

再一次,我没有尝试过任何这些代码,也不知道有没有用,只是把想法放在那里。当我回到家时,我会去的。

谢谢,

【讨论】:

  • 第一个Router 不适用于管理面板和前端。第二个仅适用于前端并在尝试转到管理面板时给出错误Error: AdminController could not be found.,就像我的问题中的第一个代码一样。
猜你喜欢
  • 2012-02-22
  • 2011-09-07
  • 2016-05-11
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 2011-07-23
  • 2016-04-10
相关资源
最近更新 更多