Справка по CodeIgniter - PullRequest
       8

Справка по CodeIgniter

0 голосов
/ 13 сентября 2010

Я планирую воссоздать сайт с текстами песен в CodeIgniter. На данный момент, как я настроил это так:
example.com/artistname и example.com/anotherartist

У меня также есть example.com/contact и example.com/request и т. Д.

Я могу сделать так, чтобы оно было example.com/artist/artistname, но мне бы очень хотелось, чтобы пользователю было легко запоминать URL-адреса.

Может кто-нибудь помочь мне с этим?

Спасибо, Maikel

Ответы [ 2 ]

3 голосов
/ 13 сентября 2010

В application/config/routes.php попробуй:

$route['contact'] = 'contact'; // /contact to contact controller
$route['request'] = 'request'; // /request to request controller
$route['(.*)'] = 'artist/display/$1'; // anything to artist controller, display method with the string as parameter
0 голосов
/ 13 сентября 2010

С помощью Руководства пользователя CodeIgniter здесь: http://codeigniter.com/user_guide/general/routing.html

Вы можете переназначить все (:any) на ваш artist контроллер.Оттуда вы можете переназначить contact, request и т. Д. На соответствующие контроллеры / функции или использовать конструктор, чтобы проверить их и вызвать правильную функцию.Примеры:

Использование маршрутизации URI:

$route['contact'] = "contact";
$route['request'] = "request";
... // etc...
$route['(:any)'] = "artist/lookup/$1"; // MUST be last, or contact and request will be routed as artists.

Использование конструктора:

public function __construct($uri) {
    if ($uri == "contact") {
        redirect('contact');
    } elseif ($uri == "request") {
        redirect('request');
    }
}

Однако этот метод может привести к бесконечному циклу.Я бы не советовал, если бы ваши функции contact и request не были в одном контроллере.Тогда вы можете просто позвонить им с помощью $this->contact() или $this->request() вместо перенаправления.

...