這些答案不給予足夠的信息,並接受的答案是太可怕了......
來處理這將是建立你的路由做的最好的方法如下(如果你想控制國家的用戶都能夠使用:
把這個在你的路由文件:
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
,它ro utes到網址http://example.com/country/view/japan/naruto
。這是假設'日本'在你的'允許的國家'陣列。
第二個只是路由URL http://example.com/japan
到http://example.com/country/view/japan
到控制器中country.php
:
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
頁面的用戶的頁面。
這項工作,如果我有所有的世界所有國家?當我激活一個國家應該對用戶可見時,我在數據庫中存儲了縣名 –
是的,您需要將它們放入一個數組並在該數組上運行foreach()。 –
因此,您寧願在路線文件中手動維護一組國家/地區,而不是讓數據庫(已包含相同信息)爲您執行訪問控制?現在,您不僅違反了DRY(不要重複自己)原則以及構建CodeIgniter的MVC體系結構背後的驅動原則,而且還爲自己做了更多工作。 – njbair