2013-07-17 4 views
0

Я использую маршрутизацию как этотКак узнать, какой контроллер вызывается с использованием URL в CodeIgniter

$route['Advertisement/1.0/(:any)']="v1/$1"; 

$route['Advertisement/1.1/(:any)']="v1_1/$1"; 

в конце концов оба они просто делают ту же работу, но я должен поддерживать оба из них из-за просто ответ такой же.

Все, что я хочу знать, как узнать, какой контроллер вызывается с использованием URL. Если я узнаю URL-адрес, как и так, будет изменен ответ соответственно, поэтому мне не нужно поддерживать два контроллера

1.0 or 1.1 

Надеюсь, вы понимаете, что я пытаюсь спросить.

Заранее спасибо.

+0

Используйте '$ this-> uri-> ruri_string()', чтобы получить доступ к ре -пропущенный URI. –

+0

it dint работал. – rohitarora

ответ

1

по Codeigniter-х User Guide, если вы хотите знать URL, который ударил, а затем использовать:

$uri_segments = $this->uri->uri_string(); 

Чтобы получить URI segments.

Кроме того, вы можете использовать current_url()URL helper, чтобы получить полный URL (включая сегменты); Для этого:

// Load URL helper first (or use autoload config) 
$this->load->helper('url'); 

// Get the current full URL 
$url = current_url(); 

И если вы хотите получить определенный сегмент URI, использование:

// "n" is the segment number you wish to retrieve, 
// in this case, n = 2 gets '1.0' or '1.1' 
$segment = $this->uri->segment(n); 
0

Если я правильно понял, то вы можете получить имя контроллера и имя метода, используя следующие функции CI

$this->router->fetch_class(); // to get controller 
$this->router->fetch_method(); // to get method 
+0

Не работает Я хочу знать URL, который попал. – rohitarora

+0

@rohitarora «Как узнать, какой контроллер вызывается» или «Я хочу узнать URL-адрес, который попал»? какой из них является предметом? –

+0

Я хочу узнать URL-адрес, который попал – rohitarora

1

Предполагая, что ваш URL выглядит следующим образом: example.com/Advertisement/1.0/...

$this->uri->segment(2); 

вернет 1,0 или 1,1