routes.php:
$route['services'] = 'woods/services';
输出:
http://localhost:8079/works/Woods/services?id=1
我想隐藏这个 id (?id=1
)。
如果您不想显示?id
,您可以在控制器中执行以下操作(url:Woods/services/1
):
public function index($id = null) {
if (is_null($id)) {
show_404();
}
// you can now use your $id variable however you want, this is
// the same as a get
}
否则,您必须使用会话或设置cookie,但这需要您在用户单击该特定ID的href之前设置id的会话变量(除非您是读心者是不可行的);这意味着您将需要该href来触发ajax以触发控制器函数,该函数使用该id设置会话变量,然后在js中重定向到页面/Woods/services
在其中检索带有 ID 的会话变量(不漂亮)。或者,您将不得不路由到一个中间函数,该函数将执行 id 的会话变量设置,然后重定向,希望用户在重定向之间不会看到 id。
基本上,它并不难,只是很麻烦,并且拥有一个看起来像这样的 url 没有真正的问题:localhost:8079/works/Woods/services/1
.1 可能成为潜在问题的唯一情况是,如果您正在尝试做一些直接插入数据库的疯狂事情。