прыжки контроллеров в коде воспламенителя - PullRequest
0 голосов
/ 27 апреля 2011

Я хочу иметь форму динамической маршрутизации.

По сути, я хочу поймать 404 (сделано с помощью route.php 404_override).

Это достаточно просто.

Но тогда я хочу провести серию проверок.

например, не обращайте внимания на тот факт, что функции is_xxx никуда не приходят

$what = $this->uri->segment(1);
if(is_vanity_name($what)){
    //now I want to route this to the profile controller and call the display function like so 
    //display('vanity', $what);
}
elseif(is_region_name($what)){
    if(($deal = $this->uri->segment(2)) !== false){
        //now I want to route to the deals controller can call the display function like so
        //display($deal, $what);
    } 
    else {
        //now I want to route to the deals controller and call the daily function like so
        //daily($what);
    }
}
elseif(is_deal_name($what)){
    //now I want to route to the deals controller and call the display function like so
    //display($what);
}
else{
    $this->load->view('errors/404');
}

И это довольно простой пример!

Так что мой вопрос, Как мне перейти к перенаправлению на другие контроллеры после того, как будет принято решение?

1 Ответ

2 голосов
/ 27 апреля 2011

Вообще говоря, делать это с помощью CodeIgniter довольно грязно.Исходя из java земли, RequestDispatcher.forward () заботится о подобных вещах, но в пространстве PHP это обычно redirect (): обычно отсутствует инфраструктура на стороне сервера для (эффективной) передачи запросов от одного файла PHP к другомубез обратной связи на стороне клиента.

Глядя в глаза Google: http://codeigniter.com/forums/viewthread/55212/P15/ - это длинное обсуждение с помощником CI, которое требует , чтобы позволить вам сделать это, http://codeigniter.com/wiki/Wick/ - это библиотека, которая, по-видимому, на самом деле это делает.

Дайте мне знать, если какой-то из этих способов сработает: вам, возможно, будет лучше перестроить их, но через некоторое время это утомительно, так что я могу понятьжелание просто передать обработку другому контроллеру (зачем беспокоиться об обратном отключении, если вам не нужно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...