【发布时间】:2014-04-30 11:15:00
【问题描述】:
我正在尝试“缩短”我的网址,例如来自:
http://mydomain.com/controller/method/something-here
进入
http://mydomain.com/something-here
通过添加到routes.php:
$route['(.*)'] = 'router/resolve/$1';
并创建一个Router 类,其resolve() 方法确定something-here 是否与我的一个数据库表(实体)中的一行匹配。如果是这样,我想通过调用适当的控制器::方法来加载条目。
例如,如果something-here 是book 的类型,我希望Router::resolve() 调用Book::view($id)。
但是,我意识到控制器不可能调用另一个控制器的方法。 (是吗?)
我也不能使用redirect("book/view/$id"),因为$route['(.*)'] 会在book(第一段)上调用Router::resolve()。
关于如何实现我的目标有什么建议吗?
【问题讨论】:
-
为什么不直接使用重定向控制器,比如stackoverflow.com/questions/10845440/furls-with-codeigniter/…
-
它在
something-here之前仍然使用了一些text/。我想让 URL 紧跟在域名后面something-here。 -
对不起,误读了问题;从另一个调用控制器。我能想到的最适合您的解决方案是 HMVC bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc
标签: php codeigniter routing routes