我想了解并使用codeigniter路由来隐藏传递给控制器的ID。
网址为:
http://172.24.130.150/umobility/user/index/2
下面,
umobility
是我的项目名称。
user
是我的控制器名称。
我搜索了网站,发现我可以定义这样的路线:
$route['user/index/(:any)'] = "user/index/$1/$2";
但是这仍然不会隐藏URL的最后ID。
请解释和帮助
答案 0 :(得分:1)
$route['user/(:any)'] = 'user/user_by_name/$1';
这会将所有内容重新路由到用户控制器中的“user_by_name”方法,您需要使用该名称查询数据库。
答案 1 :(得分:1)
您可以对链接中的id进行base64编码,该ID不会隐藏它,但会使其略显模糊。
在视图中......
// http://172.24.130.150/umobility/user/index/2
$b64_uid = urlencode(base64_encode($user_id));
echo anchor('user/index/' . $b64_uid, 'Anchor Back to User');
// should create link like http://172.24.130.150/umobility/user/index/Mg%3D%3D
在控制器......
public function index($b64_uid = NULL) {
// did we get an id?
if (is_null($b64_uid)) {
redirect($this->_redirect_url);
}
// decode it.
$user_id = base64_decode(urldecode($b64_uid));
// validate.
if (!is_numeric($user_id)) {
redirect($this->_redirect_url);
}
// do something with $user_id...
}
答案 2 :(得分:0)
您可以使用<form action="function_name" method="POST">
代替在网址中添加ID。