1

我在 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)所以实际上我通过这个 hack 在 My-Controller 中获取了 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),并且必须是一种做得更好的方法,一个更聪明的解决方案(也许在路线中?)。

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

4

0 回答 0