1

私はCodeingniterでこのルートを持っています

$route['([en|fr|es|it]+)/(.+)'] = 'My_Controller/index/$1/$2';

ここで、最初の引数は言語 ID で、2 番目の引数は一意の ID です。ID には、次のような形式でスラッシュが含まれています。

item/34/public    
something/else
name/for/this/can/be/12345

ID のスラッシュの数は 0 から (誰も知らない) までなので、実際にはこのハックで 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