извините, я не владею хорошим английским языком, пользуюсь переводчиком. Как создать ссылки в кодеригенере?
Что делать, если я хочу использовать постоянные ссылки после?
Я должен был бы изменить весь системный код каждый раз, когда вы вносите изменения в постоянные ссылки?
Есть ли библиотека, которая производит ссылки из этих аргументов и ведет себя как настроенная динамически?
Например, если я хочу изменить системный каталог из:
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);
Возвращает базовый 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
Имеют смысл?