【发布时间】:2017-04-05 02:44:36
【问题描述】:
我正在使用 CodeIgniter (V:2.2.6),我有一个简单的类 User,其中包含一些基本方法,例如 create、update、edit、delete 和 index。对于index 函数,我使用参数$user(这是第二个URI 段)来显示有关该用户的一些信息。因此默认 URL 如下所示:
/user/index/john
显示有关用户“john”的一些信息。
现在,我想从 URL 中删除术语“索引”,使其看起来像:
/user/john
为此,我在 routes.php 中添加了以下规则。
$route['user/(:any)'] = "user/index/$1";
它可以达到目的,但它会阻止访问其他功能,例如/user/create,并自动进入/user/index。为了解决这个问题,除了像
$route['user/create'] = "user/create";
对于User 类的每个方法,一点都不酷。那么,任何人都可以在当前情况下建议我一种更好的路由方式吗?
这是我的代码:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User extends CI_Controller {
public function index($user = '') {
echo "index!";
}
public function create() {
echo 'create!';
}
}
注意:我已经查看了 CodeIgniter documentation 的 URI 路由和另一个类似的问题 here,但无法找到一个有希望的解决方案。请不要建议 CodeIgniter 版本更新。
【问题讨论】:
-
为什么在列表中最后添加 (:any) 的特定路由以创建、更新等是“不酷”?输入它们不会让你的键盘磨损。
-
@TimBrownlaw 好吧,为了演示,我将函数列表保持得更小。考虑一个现实生活场景,其中一个类中的方法数量可能是 10、20 或 30。
标签: codeigniter url routing uri url-routing