Ссылка на статическую страницу в CakePHP без добавления контроллера - PullRequest
3 голосов
/ 19 сентября 2011

Итак, я создал пару статических страниц в папке views> pages.Это contact.ctp и privacy.ctp.В моем rout.php я сделал так, чтобы их можно было просмотреть, перейдя по адресу domain.com/contact и domain.com/privacy с:

    Router::connect('/contact', array('controller' => 'pages', 'action' => 'display', 'contact'));

    Router::connect('/privacy', array('controller' => 'pages', 'action' => 'display', 'privacy'));

Теперь, когда я связываю их в нижнем колонтитуле с:

    <li><?= $this->Html->link('Contact', array('controller' => 'pages', 'action' => 'display', 'contact')); ?></a></li>

    <li><?= $this->Html->link('Privacy', array('controller' => 'pages', 'action' => 'display', 'privacy')); ?></a></li>

Они связаны как domain.com/pages/terms.Как я могу остановить его от добавления контроллера страниц без указания абсолютного URL (т.е. без выполнения: <?= $this->Html->link('Contact', 'http://www.domain.com/contact'); ?> или это единственный другой способ?

Ответы [ 4 ]

3 голосов
/ 19 сентября 2011

вы, вероятно, ставите эти маршруты после Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display')); Просто измените порядок в обратном порядке, и он должен работать.

1 голос
/ 29 марта 2012

ROUTE

Router::connect('/*', array('controller' => 'pages', 'action' => 'display'));

VIEW

 echo $this->Html->link('Target', $this->Html->url(array('controller'=>'pages', 'action'=>'display', 'target', 'ext'=>'html')));

Ouput

<a href="target.html">Target</a>
0 голосов
/ 18 марта 2014

Для SE потомства и краткости вы можете использовать Router::url( ).

<li><a href="<?php echo Router::url('/contact'); ?>">Contact</a></li>
0 голосов
/ 19 сентября 2011

Использовать актуальную ссылку?

<a href ="/contact">Contact</a>

А:

<a href ="/privacy">Privacy</a>

Короткий и сладкий ^ _ ^

...