Как вы создаете относительные ссылки в CodeIgniter? - PullRequest
4 голосов
/ 18 апреля 2011

Пример У меня есть следующий код в контроллере:

class Main extends CI_Controller {

    public function index()
    {
        $this->load->view('main_view');
    }

    public function create ()
    {
        $this->load->view('create_view');

    }
}

Если я хочу создать относительную ссылку на create, как мне это сделать?Следующая ссылка в представлении не всегда работает.Что такое подходящий способ создания относительных ссылок в CodeIngiter?

<a href="create"> Create </a>

Ответы [ 4 ]

4 голосов
/ 18 апреля 2011
<a href="<?= site_url('/main/create'); ?>"> Create </a>

или просто:

<?= anchor('/main/create', 'Create'); ?>

Убедитесь, что вы загрузили URL Helper .

3 голосов
/ 18 апреля 2011

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

Предполагается, что ваша установка находится в корневом каталоге.вашего домена, скажем, ваш текущий URL-адрес http://localhost/class/method/var:

<a href="/main/create">Will work from anywhere</a>
<a href="create">Will go to http://localhost/class/method/var/create</a>
<a href="../create">Will go to http://localhost/class/method/create</a>

Относительные пути не являются вашим другом в Codeigniter, вам лучше придерживаться полных URL-адресов (обычно с использованием вспомогательных функций, таких как base_url()и site_url()), или использовать косую черту (относительно корня).Люди упоминали использование тега <base> html, но я лично не рекомендую это.У вас будут очень дурацкие URL, если вы будете использовать пути ../../relative, когда будете углубляться в сегменты URL.Пример:

Если вы здесь: http://localhost/controller/method/var1/var2/var3

Ссылка может выглядеть следующим образом: <a href="../../../../controller2/method/othervar"></a>

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

0 голосов
/ 18 апреля 2011

Просто чтобы указать другую альтернативу, если вам не нравится идея написания php-фрагмента в каждом href, и если другие подходы вас не удовлетворяют. Вы можете использовать тег <BASE > в заголовке html (например, указывающий на корень вашего приложения) и помнить, что каждый относительный URL на ваших страницах будет соответствовать этому URL.

0 голосов
/ 18 апреля 2011

Вот полное объяснение того, как это работает.

Относительные URL с CodeIgniter

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...