Как создать удобный для пользователя URI в CodeIgniter? - PullRequest
0 голосов
/ 14 апреля 2011

Я новичок в CodeIgniter.

Мне нужно спроектировать простой веб-сайт, где я получаю информацию из базы данных.Информация из базы данных о рекламе.У меня есть информация о стране, зоне страны, расположении зоны и типе объявления.

Моя цель - иметь такой URI, как:

http://www.someurl.com/index.php/country/country_zone/zone_location/ad_type/title_of_ad

.как это сделать с CodeIgniter?

С наилучшими пожеланиями,

Ответы [ 2 ]

1 голос
/ 14 апреля 2011

Я думаю, что самый простой способ - использовать собственный маршрут в application/config/routes.php.Примерно так:

$route['^(:any)/(:any)/(:any)/(:any)/(:any)'] = "your_controller/get_ads/$1/$2/$3/$4/$5";

тогда ваша функция контроллера будет выглядеть примерно так:

function get_ads($country, $country_code, $zone_location, $ad_type, $title_of_ad) {
    // your code
}

.. вы можете заменить (:any) более конкретным регулярным выражением, если есть какой-то шаблонк аргументам.

0 голосов
/ 14 апреля 2011

первые 2 аргумента в вашей ссылке - это имя вашего контроллера и метод того контроллера, который вы хотите вызвать.

, поэтому

http://www.someurl.com/index.php/country/country_zone/zone_location/ad_type/title_of_ad

будет означать, что вы вызываете country_zoneметод вашего контроллера country и передайте этому параметру zone_location, add_type и title_of_ad.

то, что вы хотите, ist

http://www.someurl.com/index.php/TheControler/themethod/country/country_zone/zone_location/ad_type/title_of_ad

, реализованный так:

class TheControler extends Controler{
    function themethod($country,$country_zone,$zone_location,$ad_type,$title_of_ad){
        //your code
    }
}
...