0
私は完全に動的で、バックエンドからすべてのページを動的に作成するウェブサイトを持っています。 は今、私が作成しているあなたのURLのシーケンスを示してみましょう:URLのnレベルを受け入れるためにCIのルートを設定する
http://localhost/occ/level1/level2/....leveln
基本的にLEVEL1、LEVEL2、... leveln は、特定のメニューなど家のレベル(階層)されています/ contact_section/contact_us管理者は複数のページを作成し、彼が望むようなレベルのメニューを作成することができます。つまり、URLロジックが何であるかは、親から最上位の親までフォローしてURLを返します。私は一般的なコントローラに渡している名前になります。これは基本的にdbクエリを実行する名前を取ります。すべてのデータをして、こちらのページを表示するには、私のルートです:
$route['default_controller'] = 'Home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['Admin'] = 'Admin';
//$route['(:any)'] = 'Home/pages/$1';
$route['(:any)/(:any)'] = 'Home/pages/$1/$2';
//$route['(:any)/(:any)'] = 'Home/pages/$1';
今、上記のルートは、2つの問題があります。
- のは、私は2つのレベルがありURLを持っているとしましょうので、ルート$ルート[」 (:any)/(:any) '] ='ホーム/ページ/ $ 1/$ 2 ';が呼び出されると、ページコントローラは名前を受け取り、私の場合は最初の名前を返すか、$ 1と言うことができますが、URLの最後の名前をコントローラに送る必要があります。
- どのように一般的にすることができますか?同様に、URLにnレベルの名前を付けてスラッシュで区切って、URLの姓をコントローラに渡してすべてのURLを受け入れるように経路を設定する方法を説明します。現在、ルートに定義されている他のレベルのURLを持っていると、ページが見つかりません!
を使用することができ、CI 3を使用している場合、 CI 3.Xを使用していますが、無効な引数を受け取りましたimplap() –
この '$ params = implode("、 "$ param);'を '$ params =(count($ param) )> 1)? $ params = implode( "、" $ param):$ params; ' – elddenmedio
文字列を爆発させています.1つではなく2つの属性が返されています..... n –