2016-05-23 10 views
5

私はCodeigniter 3.xを使用していますroutes.php私はクラス名を持っていますClass1ルートにスラッシュ(/)またはアンダースコア(_)の代わりにハイフン( - )を使用する

は、私は、出力のURLにしたい

mysite.com/Class1-Student-Search

しかし、ハイフンを使用して( - )私はスラッシュを置けば

が動作しません( /)、それは動作します、

$route['(:any)/Student-Search'] = "search"; 

それは戻り

mysite.com/Class1/Student-Search

と下線(_)を使用しても動作します。

$route['(:any)_Student-Search'] = "search"; 

戻り

mysite.com/Class1_Student-Search

しかし、私はハイフンを使用するには、( - )私はそれを置けば、それは404エラーになりますページ、私はこれらの4つのソリューションを使用したが、私のために働いていない。

$route['(:any)-Student-Search'] = "search"; 
$route['([a-zA-Z]+)-Student-Search'] = "search"; 
$route['([a-zA-Z-0-9]+)-Student-Search'] = "search"; 
$route['(.*)-Student-Search'] = "search"; 

と私はルート

$route['Class1-Student-Search'] = "search"; 

に値をハードコーディング場合、それはまた、あなたは以下を参照してください場合 CodeIgniterのでは不可能であるダイナミックルートを作成しようとして

+0

'$ route ['translate_uri_dashes'];を' TRUE'に設定しましたか? – Saty

+0

はい私は@ Saty –

+0

それを設定する正規表現です。 '\\ - Student \\ - Search' –

答えて

2

作業私が意味することを理解しているcodeigniterのフローチャート。

enter image description here

あなたには、いくつかのURLをリダイレクトまたは電話しようとすると、CodeIgniterの公式website

でこのチャートを見ることができますまた、それはこのような作業だ

enter image description here

すべての要求が最初に行きますあなたのために経路を動的にすることはできません。

+2

Codeigniterの公式ウェブサイトは現在http://www.codeigniter.comです。ここで両方のドキュメントを見つけることができます。http://www.codeigniter.com/docs Ellislabはこれ以上CIを扱っていません。しかし何らかの理由で彼らはまだリンクを持っています。 – user4419336

-1

これは私のソリューションです、それは私のために働いています、これは好きです。

$route['(:any)-Student-Search'] = "search"; 

あなたのリンクボタンで、うまくいけばうまくいけば、このようなリンクをhref。

href="/<?php echo $row->classname; ?>-Student-Search" 

ポイントはあなたにも、あなたのルートを確認する必要があり、あなたのhrefのリンクと同じ方法でそれを接尾ないだけということです。

+0

それは何ですか?答えは、あなたの呼び出しが最初に経路に行き、次に経路がいずれかの呼び出しに行くことを意味します。その男はコードシニターでは不可能なファーストクラスを呼び出したい。 –

+0

(:any)は彼が渡している実際のIDを意味し、ルートはID番号をチェックしてクラスに行く。 彼はルートにidを渡し、データを照会し、その関連する詳細をロードできます。 – Prakash

+0

質問のケアを完全に読んで、何らかの機能を定義したいクラスにリクエストを送信し、不可能なルートにヒットします。 –

関連する問題