Я не могу понять, как сгенерировать Url везде, где я хочу, в zend 2
Я получаю действие и контроллер, поэтому я пробую это:
$this->url('myControllerName', array('action' => 'myActionName'));
Но это возвращает объект, я просто хочу, чтобы полная строка URL этого маршрута
Кто-нибудь может помочь мне найти правильный путь?
EDIT: по словам Стояна, возможно, я ошибся на своем маршруте. вот часть моего модуля.config
'router' => array ( 'routes' => array ( 'indexqvm' => array ( 'type' => 'segment', 'options' => array ( 'route' => '/Indexqvm[/:action][/:id_event]', 'constraints' => array ( 'action' => '[a-zA-Z][a-zA-Z0-9_-]+', 'id_event' => '[0-9]+' ), 'defaults' => array ( 'controller' => 'Qvm\Controller\Indexqvm', 'action' => 'index' ) ) ),
И мой звонок:
echo $this->url('indexqvm', array('action' => 'list-index'));
ошибка: Catchable fatal error: Объект класса Zend \ Mvc \ Controller \ Plugin \ Url не может быть преобразован в строку
Используйте эхо, прежде чем вызывать $this->url(...)
(см. Ниже), и отобразится весь URL-адрес.
<?php echo $this->url('route-name', $urlParams, $urlOptions); ?>
Обратите внимание, что первым параметром url()
является имя маршрута, указанное в файле [module]/config/module.config.php
.
См. Это для получения дополнительной информации о помощнике URL-адреса ZF2.
EDIT в ответ на редактирование вопроса:
Вышеупомянутый раздел связан с использованием помощника просмотра URL.
Если вам нужен URL-адрес в контроллере, вам нужен плагин контроллера URL.
<?php $url = $this->url()->fromRoute('route-name', $params, $options); ?>
Это ссылка на руководство ZF2 для этого плагина контроллера.
Надеюсь это поможет 🙂
Стоян
Вы можете использовать это в файле .phtml
echo $this->url('HelloWorld/default', array('controller'=>'Index', 'action'=>'registration'));
Где HelloWorld / default – это маршрутизация, а остальная – это контроллер и его действие, а также вы можете отправить дополнительный параметр, добавляющий только массив, как пару ключей и значений.