0

私が欲しい

en/careers to career
fa/careers to career
careers to career

私は試した$route['(en|fa)(.+)/careers'] = 'career';

しかし、それは機能していません

4

2 に答える 2

0

メーカーen/fa/オプション:

(en/|fa/)?careers
于 2015-08-30T09:20:05.890 に答える
0

この正規表現を Routes.php で使用します

$route['en/careers|fa/careers|careers'] = 'career/index';

グラフィカルな説明:

ここに画像の説明を入力

アップデート:

しかし、テストを作成するためのキャリアコントローラー/メソッドへの引数として言語文字「en」または「fa」を送信する方が理にかなっていると思います...など、次のようになります。

www.example.com/en/careers = www.example.com/careers/lng/en
www.example.com/fa/careers = www.example.com/careers/lng/fa
www.example.com/careers = www.example.com/careers/lng/en 
//(assuming that en is the default language if no language was specified)

それが理にかなっているなら、あなたはそのようにそれらの3つのルールに行くべきです

$route['(en)/careers'] = 'career/lng/$1';
$route['(fa)/careers'] = 'career/lng/$1';
$route['careers'] = 'career/lng/en';

そして、これがcareers.php内にあるlng()メソッドです

 public function lng($lang_id)
 {
    if($lang_id == "en")  
        echo "welcome"; 
    elseif($lang_id == "fa")
        echo "خوش آمد";  // not sure if this is correct in "fa" language :p
 }

注: 言語の ID がデータベースに保存されている場合は、$1 を数値の ID に変更できます ...etc

$route['en/careers'] = 'career/lng/1';
$route['fa/careers'] = 'career/lng/2';
$route['careers'] = 'career/lng/1';

次に、 lng() メソッドは次のようになります

 public function lng($lang_id)
 {
    if($lang_id == 1)  
        echo "welcome"; 
    elseif($lang_id == 2)
        echo "خوش آمد";  // not sure if this is correct in "fa" language :p
 }

それが役立つことを願っています

于 2015-08-30T19:16:13.707 に答える