0

私は簡単な問題を抱えていますが、それを理解することはできません。URL からパラメーター (1 つのパラメーターはユーザー名) を読み取り、すべてのデータをそのユーザーに照会してページに表示するメソッドを作成しました。

唯一の問題は、メソッドがコントローラーの一部であり、当然、URL に表示する必要があることです (これは単純に言えば、共有するにはあまり良くありません。また、次のように文字列を記述する必要があります。

www.domain.com/controller/profile_guest?user=username

ユーザー名の前にあるものをすべて取り除きたいです。したがって、次のように表示されます。

www.domain.com/username

ここで取り上げるシナリオは 2 つあります。

a) 誰かがカタログを閲覧し、プロファイル名をクリックしてから、プロファイル ページにリダイレクトします。そこで見たものが気に入ったら、URL をコピーして共有します。

b) 誰かが共有リンクを受け取り、それをクリックすると、コントローラとメソッドを示す完全なページではなく、受け取った URL を含むプロファイル ページが読み込まれます。

これを達成することは可能ですか?

助けてくれてありがとう :)

アップデート:

$route['default_controller'] = "main/index";
$route['404_override'] = '';
4

1 に答える 1

1

このルートを使用できます:

$route['(:any)'] = "controller/profile_guest/$1";

ただし、他のルートでは、このルートの上に手動で記述する必要があります。例えば:

$route['controller/view'] = "controller/view";
$route['(:any)'] = "controller/profile_guest/$1";

説明:

ルートは、routes.php ファイルに表示される順序で処理されるため、最初に配置すると$route['(:any)']、何でも処理されます。

コントローラーとその中に関数があり、それを実行する必要があるとします。たとえばwww.domain.com/contoller/function、この route と一致するため関数を実行できないため$route['(:any)']、その前にルートを定義する必要があります$route['(:any)'] 。例:

$route['contoller/function'] = "controller/function"
$route['(:any)'] = "controller/profile_guest/$1";

すべてのコントローラーとその機能で同じことを行いますが$route['(:any)']、最後のルートに配置する必要があります。

于 2013-04-21T14:22:40.887 に答える