Codeigniter路由/控制器中带有斜杠的ID

时间:2015-10-05 16:27:23

标签: codeigniter controller routes stripslashes

我在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)并且必须是一种更好的方法,一种更智能的解决方案(可能在路线中?)。

欢迎任何帮助或线索......

0 个答案:

没有答案