CodeIgniter — правильный способ ссылки на другую страницу в представлении

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

Есть ли функция для этого или это просто обычное дело?

Ваше здоровье,


person Cecil    schedule 05.03.2011    source источник
comment
как вы хотите связать это вы хотите поместить ссылку с одной страницы на другую?   -  person Muhamad Bhaa Asfour    schedule 05.03.2011
comment
Я использую относительный способ. В HTML: <a href="/controller/method">text</a> (примечание/перед контроллером). В коде PHP это без /. Я использую мод перезаписи, и все ссылки относятся к RewriteBase.   -  person CappY    schedule 05.03.2011


Ответы (6)


Я предполагаю, что вы имеете в виду "внутри" вашего приложения.

вы можете создать свой собственный тег <a> и вставить URL-адрес в href следующим образом

<a href="<?php echo site_url('controller/function/uri') ?>">Link</a>

ИЛИ вы можете использовать помощник URL таким образом, чтобы создать тег <a>

anchor(uri segments, text, attributes)

Итак... использовать его...

<?php echo anchor('controller/function/uri', 'Link', 'class="link-class"') ?>

и это будет генерировать

<a href="http://domain.com/index.php/controller/function/uri" class="link-class">Link</a>

Для дополнительного вопроса с комментариями

Я бы использовал свой первый пример

so...

<a href="<?php echo site_url('controller/function') ?>"><img src="<?php echo base_url() ?>img/path/file.jpg" /></a>

для изображений (и других ресурсов) я бы не стал указывать путь к файлу в php, я бы просто повторил base_url(), а затем добавил путь в обычном режиме.

person jondavidjohn    schedule 05.03.2011
comment
Спасибо за это ... Как насчет ссылки с изображением, например, как мне сделать следующее: ‹a href=link.htm›‹img src=‹?php echo base_url().'images/btn-trial. png'; ?› alt=7-дневная пробная версия width=285 height=33 border=0 /›‹/a› - person Cecil; 05.03.2011
comment
Но здесь мы передаем имя метода в параметре, что, если мне нужен URL не как controller/function, а как controller/functionChange? Тогда в этом случае я должен изменить каждый вызов controller/function на controller/functionChange вручную. есть ли другой способ добиться этого, поскольку cakephp похож на массив ('controller'=›'controller',method=›'function'). - person RN Kushwaha; 10.08.2015
comment
@jondavidjohn Привет, controller/function строг в CI? Разве я не могу сделать controller_to_view/function_to_view/subfolder/actual_view_file? Потому что последний возвращает мне 404 :-( - person ; 04.09.2016
comment
Помогите проверить мою проблему stackoverflow.com/questions/39360697/ - person ; 07.09.2016

Лучше всего использовать следующий код:

<a href="<?php echo base_url() ?>directory_name/filename.php">Link</a>
person Ashish Bafna    schedule 19.10.2015

вы также можете использовать короткий тег PHP, чтобы сделать его короче. вот пример

<a href="<?= site_url('controller/function'); ?>Contacts</a>

или используйте встроенную функцию привязки CI.

person winnie damayo    schedule 23.06.2017

Лучший и самый простой способ — использовать тег привязки в CodeIgniter, например, например.

<?php 
    $this->load->helper('url'); 
    echo anchor('name_of_controller_file/function_name_if_any', 'Sign Out', array('class' => '', 'id' => '')); 
?>

См. https://www.codeigniter.com/user_guide/helpers/url_helper.html подробности

Это обязательно сработает.

person Amaan Iqbal    schedule 22.06.2017

вы также можете использовать этот код

//test" class="btn btn-primary pull-right">

person Ghulam Abbas    schedule 15.03.2019
comment
Это не решает проблему. Это класс CSS. - person blockhead; 18.07.2021

person    schedule
comment
Добавьте некоторое объяснение с ответом о том, как этот ответ помогает ОП в устранении текущей проблемы. - person ρяσѕρєя K; 02.01.2017
comment
я думаю, что это сломанный тег - person Ryan Arief; 16.09.2020