Как создать ссылки в codeigniter?

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

Что делать, если я хочу использовать постоянные ссылки после?

Я должен был бы изменить весь системный код каждый раз, когда вы вносите изменения в постоянные ссылки?

Есть ли библиотека, которая производит ссылки из этих аргументов и ведет себя как настроенная динамически?

Например, если я хочу изменить системный каталог из:

http://testing/webapp/index.php 

чтобы:

 http://production/index.php 

Мне нужно изменить весь код? Какова наилучшая практика для этого?

Вы можете использовать методы codeingiter base_url () и site_url ().

Сначала вам нужно загрузить хелпер URL в свой контроллер:

 $this->load->helper('url'); 

См. Их определения ниже (согласно документации CI, http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html )


адрес сайта()

Возвращает URL вашего сайта, как указано в вашем файле конфигурации. В URL-адрес будет добавлен файл index.php (или все, что вы указали в качестве страницы сайта index_page в вашем файле конфигурации), как и все сегменты URI, которые вы передаете функции, и url_suffix, как указано в вашем файле конфигурации.

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

Сегменты могут быть необязательно переданы функции как строка или массив. Вот пример строки:

echo site_url ("news / local / 123"); Вышеприведенный пример вернет что-то вроде:

 http://example.com/index.php/news/local/123 

Вот пример сегментов, переданных как массив:

 $segments = array('news', 'local', '123'); echo site_url($segments); 

base_url ()

Возвращает базовый URL вашего сайта, как указано в вашем файле конфигурации. Пример:

 echo base_url(); 

Эта функция возвращает то же, что и site_url, без добавления index_page или url_suffix.

Также, как и site_url, вы можете предоставлять сегменты в виде строки или массива. Вот пример строки:

 echo base_url("blog/post/123"); 

Вышеприведенный пример вернет что-то вроде:

 http://example.com/blog/post/123 

Это полезно, потому что, в отличие от site_url (), вы можете указать строку в файл, например изображение или таблицу стилей. Например:

 echo base_url("/_user_guide_src_ci/images/icons/edit.png"); 

Это даст вам что-то вроде:

 http://example.com/images/icons/edit.png 

Это именно то, что для базового URL-адреса в файле конфигурации. Единственное, о чем вам нужно беспокоиться, это относительный URL-адрес, вы можете даже настроить разные среды, создав новые папки внутри папки config

например, если я установил в свой config.php непосредственно внутри папки config

 $config['base_url'] = 'http://localhost/hello'; 

Тогда базовый url всегда http: // localhost / hello теперь, допустим, у меня есть домашняя среда разработки и производственная среда. Если я скопирую config.php в папку внутри config, называемую production, поэтому application / config / production / config.php задает базовый URL-адрес:

 $config['base_url'] = 'http://www.example.com/hello'; 

Затем в моем index.php я устанавливаю:

 define('ENVIRONMENT', 'production'); 

Везде, где мне нужна среда для изменения, Codeigniter изменит его для меня. Таким образом, на живом сайте я использую производственную среду, дома я меняю эту среду на развитие, а CI выполняет эту работу для меня.

Затем в вашем коде используйте base_url (), чтобы создать свои ссылки.

Например:

  <a href="<?=base_url();?>hello_world">Hello World</a> 

Будет производить:

 //at home: http://localhost/hello_world //in production: http://www.example.com/hello_world 

Имеют смысл?