2017-08-03 7 views
0

このプロジェクトは、codeignitor上に構築されたソーシャルネットワーキングサイトのようなものです。Codeignitorの検索

ここに私のデフォルトコントローラは、(ログインページをロードする)MyController.php で、私のドメインは、各ユーザーが一意のIDを持つことになります私のアプリケーションではaravind.com

であると言います。 と私の要求は、 ユーザーのunique_idがドメイン名の後ろにimmedetily与えられたときに、ユーザーの特定のページが開かれるはずです。 (:aravind.com/Search_class/search_func/123のような) すなわち、aravind.com/123は、その固有のID 123

である私はこれを知っているコントローラと ドメインとUNIQUE_ID、その間の機能を配置することによって、acheivedすることができ、ユーザのページを開く必要があります。 しかし、そのようにすると、特定のユーザーのURLが長くなり、許容できなくなります。 この問題を解決するにはロジックが必要です。

注:コントローラパッケージには他のクラスとフォルダがありますので、コントローラパッケージのUniqueIDでクラスとフォルダを区別するのに十分なサイズの が必要です。 したがって、私はクラスとフォルダー名が連続した文字列であると言うことができます。 一意のIDはアンダースコア(_)で始まります。

我々はfacebook.com/aravind.pillai.983を入力すると、それは私の口座を開くように同じことが、ログインfacebookで行われ、 URLはfacebook.com/settingsのように行くかのようにアクティブなセッションを持っている ユーザーの設定ページを開きます。

すべてのヘルプは高く評価されます。 ありがとうございます。

答えて

0

設定route["404_override"]:そのルールの前にあなたのような他のルールを設定する必要があります。 でも、ユーザーが無効なURLを入力しようとすると、Search.phpにリダイレクトされます。

ここで$this->uri->segment(1)を使用すると、最初のURIセグメントの値が取得されます。

ユーザーが有効なunique_idを入力したかどうかを識別するロジックを記述できます。

これで、1つのクラス(Search.php)にuri値が設定されました。

0

必要なすべてのルートを設定できるルーティングを使用する必要があります。 APPPATH.'config/routes.php'ファイルでは、これを追加します。

$route['(:any)'] = 'Search_class/search_func/$1'; 

あなたは、ルーティングについてdocumentationを読み、examples他のを確認してください。

また、routes.phpファイルの末尾にこのルールを置く必要があるため、アプリケーションは常に最初のURIセグメントのSearch_class/search_func/$1をチェックすることに注意してください。カスタムクラス(たとえばSearch.php)のいずれかに

$route['about'] = 'pages_c/show/about'; 
$route['contact'] = 'pages_c/show/contact'; 
// then after all declared routes, you can set wild card placeholder 
$route['(:any)'] = 'Search_class/search_func/$1'; 
関連する問題