Я установил $routes['404_override'] = 'city/switch_site'

Теперь в моем городском контроллере

Класс City расширяет CI_Controller {

    function __construct() {
        parent::__construct();
    }

    function switch_site( ) {
        $this->load->helper('url'); // load the helper first
        $city = $this->uri->segment(1);
        $segment_cnt = 1;
        $valid_url = '';

        switch( $city ) {

            case 'pune':
                        $segments = $this->uri->segment_array(2);
                        foreach($segments as $value) {
                            if($segment_cnt > 1) {
                                $valid_url .= $this->uri->slash_segment($segment_cnt);
                            }
                            $segment_cnt++;
                        }
                        $this->config->set_item('cityid',1);
                        $this->config->set_item('cityname','pune');
                        echo APPPATH.'controllers/'.$valid_url;
                        include_once(APPPATH.'controllers/'.$valid_url);
                        break;
            case 'mumbai':
                        $segments = $this->uri->segment_array(2);
                        foreach($segments as $value) {
                            if($segment_cnt > 1) {
                                $valid_url .= $this->uri->slash_segment($segment_cnt);
                            }
                            $segment_cnt++;
                        }
                        $this->config->set_item('cityid',2);
                        $this->config->set_item('cityname','mumbai');
                        include_once(APPPATH.'controllers/'.$valid_url);
                        break;
            default:


        }
    }
}

Как мне теперь передать правильный URL-адрес маршрутизатору codeigniter

0
user160108 15 Апр 2011 в 19:16

1 ответ

Я думаю, что вы все делаете неправильно. Внутри вашего коммутатора вместо того, чтобы включать другие контроллеры, которые не будут работать, используйте redirect(), чтобы направить их туда, куда они должны идти.

0
Eric 22 Апр 2011 в 08:23
Спасибо за ответ, но я отказался от этой идеи и вместо этого использовал собственные маршруты codeigniter и перехватчики pre_system, чтобы получить нужный мне результат
 – 
user160108
23 Апр 2011 в 09:10