Я только начал использовать ZendFramework 2
. Я определил маршрут в моем module.config.php
, и я хочу использовать $this->url
на мой взгляд, чтобы сгенерировать URL.Состояние внутри определения маршрута
module.config.php
'settings-users-list' => array(
'type' => 'Zend\Mvc\Router\Http\Regex',
'options' => array(
'regex' => '/settings((/role/(?<role>[a-zA-Z]+))|)((/search/(?<search>[a-zA-Z0-9_-]+))|)((/page/(?<page>[0-9]+))|)((/date/(?<date>asc|desc))|)((/log/(?<log>asc|desc))|)',
'defaults' => array(
'controller' => 'Admin\Controller\Settings',
'action' => 'index',
),
'spec' => '/settings/role/%role%/search/%search%/page/%page%/date/%date%/log/%log%',
),
),
In my view
echo $this->url('admin/settings-users-list',$link_params,array('force_canonical' => true));
где
$link_params = array(
'controller' => 'settings',
'action' => 'index',
'role' => 'admin',
'search' => '',
'page' => '',
'date' => '',
'log' => '',
);
Моя проблема заключается в том, что, когда часть моих параметров пустой сгенерированный URL-адрес не является желаемым. В этом случае генерируемый URL является:
www.mysite.com/admin/settings/role/admin/search//page//date//log/
Есть ли способ, чтобы не отображать search
, page
, date
, log
, если этот параметр не задан. Возможно, есть способ поставить условие в поле spec
settings-users-list
маршрут в module.config.php
.