2015-01-30 2 views
2

Я сейчас обновляю приложение до CakePHP 3. В CakePHP 2 я использовал HTMLHelper :: url для создания ссылок на контроллеры/действия для кнопок и т. Д.CakePHP 3: HTMLHelper: url missing

Что-то вроде этого:

<form class="navbar-form navbar-left form-signin" action="<?php echo $this->HTML->url(array(
    "controller" => "users", 
    "action" => "login")); ?>" method="post"> 

Как вы можете видеть, я использую $this->HTML->url() генерировать ссылки на мой контроллер/действия. В CakePHP 3 отсутствует HTMLHelper :: url(). Об этом упоминается ни в документации, ни в руководстве по миграции. Есть ли другой способ создания ссылок в Cake 3?

Спасибо! Alex

+0

использование $ this-> url-> построить (массив ('контроллер' => 'пользователей', 'действие' => 'Войти')); –

ответ

2

Вы можете использовать метод Router::url(), чтобы получить URL-адрес действия. Так что просто изменить строку следующим образом:

<form class="navbar-form navbar-left form-signin" action="<?php echo Router::url(array("controller" => "users", "action" => "login")); ?>" method="post"> 

Кстати, почему бы вам не использовать FormHelper, чтобы сгенерировать форму?

+0

Этого не хватало бы дополнительной сущности, которую применял помощник. – ndm

+0

Я noob с HTML и PHP :-(Я не нашел способ создать Boostrap-совместимые формы с FormHelper. Это всегда было очень запутанным, поэтому я переключился на это самостоятельно. Надеюсь, что все будет лучше со всеми из этого и сделайте это надлежащим образом ... в будущем. – AlexWerz

0

Для создания ссылок вы можете использовать ссылку метод CakePHP

Cake\View\Helper\HtmlHelper::link(string $title, mixed $url = null, array $options =[]) 

Попробуйте для вышеупомянутого кода

<form class="navbar-form navbar-left form-signin" action="<?php echo $this->HTML->link(array(
    "controller" => "users", 
    "action" => "login")); ?>" method="post"> 
Смежные вопросы