我在Codeingniter中有这条路线
$route['([en|fr|es|it]+)/(.+)'] = 'My_Controller/index/$1/$2';
其中第一个参数是lang id,第二个参数是唯一的iD。 ID的斜杠格式如下:
item/34/public
something/else
name/for/this/can/be/12345
ID中的斜杠数可以是0到(nobodyknows),所以实际上我在My-Controller中使用这个hack获取了id:
public function index($lang,$id)
{
$hack_id = $this->uri->segment(3);
if ($this->uri->segment(4)) {
$hack_id .= "/".$this->uri->segment(4);
}
if ($this->uri->segment(5)) {
$hack_id .= "/".$this->uri->segment(5);
}
/*...and so go on if clauses, repeating and concatenating ...*/
/* and finally passing the hack_id data to view */
}
它有效,但我认为这是一个奇怪的解决方案(我不是真的传递任何id)并且必须是一种更好的方法,一种更智能的解决方案(可能在路线中?)。
欢迎任何帮助或线索......