...これを処理する
最良の方法は、次の操作を行うためにあなたのルーティングを設定することです(あなたがコントロールしたい場合ユーザーが使用することができますことを国:
foreach(array('country1', 'country2') as $country) { // array with allowed countries
$routes[$country.'/(:any)'] = "country/view/{$country}/$1";
$routes[$country] = "country/view/{$country}";
}
ので、もしこれはは、許可の国のあなたの配列をとり、その後、各国のルーティングルールを作成しないものを:
は、あなたのルートファイルでこれを置きますユーザーはhttp://example.com/japan/naruto
に行きますURL http://example.com/country/view/japan/naruto
へ。これは、「japan」があなたの「許可された国」の配列にあると仮定しています。お使いのコントローラcountry.php
に
もう一つは、単純にルートURL http://example.com/japan
http://example.com/country/view/japan
へ:
class Country extends CI_Controller {
function view($country, $username = false) { // $username=false allows you to show just a 'country' page if you want to
if ($username) {
$this->load->view('users_view', array('country' => $country, 'username' => $username));
} else {
$this->load->view('countries_view', array('country' => $country))
}
}
}
だけ表示されている国のためにページを作成することが有効になっている私がここで行っていますあなたのビューフォルダからcountries_view.php
をロードするか、users_view.php
ページをロードするユーザのページを表示することができます。
私はすべての世界のすべての国を持っている場合この作品ですか? 1つの国をアクティブにするたびにデータベースに郡名が格納されています。 –
はい、配列に入れて、その配列のforeach()を実行する必要があります。 –
あなたはあなたのルートファイルの国の配列を手持ちで管理していますが、データベースには同じ情報が入っていますので、あなたのアクセスコントロールができますか?今では、DRY(Do not Repeat Yourself)原則に違反していないだけでなく、CodeIgniterが構築されているMVCアーキテクチャの原動力ですが、自分でもっと多くの作業をしました。 – njbair