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

Я пытаюсь использовать функцию current_url() в codeigniter, но не уверен, как манипулировать этими данными. Я понимаю, что могу повторить current_url(), но как мне взять каждый из сегментов и использовать для создания нового URL?

Я пытаюсь взять фрагменты текущей страницы и использовать для создания нового URL с добавлением новых переменных данных.

Я никогда не работал с current_url(); раньше, поэтому не уверен, что делать. Допустим, мой пользователь находится на странице фильтров и имеет 2 переменные для фильтрации своих результатов (район и категория). Если пользователь щелкает по окрестности, как бы я структурировал гиперссылку, чтобы получить текущую переменную url для категории, а затем вставить переменную для окрестности?

Мои URL выглядят примерно так: mydomain.com/ny/find/$neighborhood/$category

   Breakdown:
   ny = controller
   find = function
   param1 = $neighborhood
   param2 = $category

Любая помощь приветствуется...

3 ответа

<?php //check if there is a value in uri segment 3 (param1)

if($this->uri->segment(3)){ 

//if there is a value there then include it in the link ?>
     <a href="controller/function/<?=$this->uri->segment(3)?>/link">Link text</a>

<?php //otherwise just go to the link for param1

}else{ ?>

   <a href="controller/function/link">Link text</a>

<?php } ?>

Это должно работать, хотя в зависимости от необходимой логики вам может потребоваться настроить ссылки, а также логику в операторах else. В зависимости от того, как вы хотите связать, вы также можете добавить elseif($this->uri->segment(4)) и использовать другую логику, если пользователь находится на странице с 4 сегментами URL.

current_url() возвращает строку для фактической загруженной страницы. Вы можете создать любой URL, который вы хотите, используя сегменты. Допустим, у вас есть этот текущий URL:

mydomain.com/ny/find/$neighborhood/$category

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

$url = base_url().$this->uri->segment(1).'/'.$this->uri->segment(2).'/newParamYouAdd/'.$this->uri->segment(4);

А потом:

<a href="<?php echo $url; ?>">New url</a>

Дайте мне знать, если это то, что вы хотите.

Вы можете разбить свой URL с помощью этого:

For ny: echo $this->uri->segment(1);
For find: echo $this->uri->segment(2);
For param1: echo $this->uri->segment(3);
For param2: echo $this->uri->segment(4);
Другие вопросы по тегам