Я борюсь с этой проблемой и не могу ее преодолеть.Zend 2 Framework Routing
То, что я хочу достичь, это маршрут, как это:/rolepermission [/: Идентификатор роли]/разрешения [/: permissionid] [/ действие /: действие]
В настоящее время я придумал что-то вроде этого:
'rolepermission' => array(
'type' => 'literal',
'options' => array(
'route' => '/rolepermission',
'constraints' => array(),
'defaults' => array(
'controller' => 'My\Controller\RolePermission',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'rolepermissionroleid' => array(
'type' => 'segment',
'options' => array(
'route' => '/[:roleid]',
'constraints' => array(
'roleid' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'action' => 'detail',
),
),
'may_terminate' => true,
'child_routes' => array(
'rolepermissionpermissions' => array(
'type' => 'literal',
'options' => array(
'route' => '/permissions',
'constraints' => array(),
'defaults' => array(
'action' => 'index'
),
),
'may_terminate' => true,
'child_routes' => array(
'rolepermissionpermissionid' => array(
'type' => 'segment',
'options' => array(
'route' => '/[:permissionid]',
'constraints' => array(
'permissionid' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
),
),
'may_terminate' => true,
'child_routes' => array(
'rolepermissionaction' => array(
'type' => 'segment',
'options' => array(
'route' => '/action/[:action]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'action' => 'index'
),
),
'may_terminate' => false,
'child_routes' => array(),
),
),
),
),
),
),
),
),
),
При переходе на/rolepermission/permissions я постоянно получаю «разрешения» для: roleid. Я ожидаю, что здесь ничего не будет заменено из-за того, что вы не пропустили роль. Что я делаю не так?
Спасибо заранее, веселит
ive неиспользуемые маршруты таким образом, но «roleid» => '[a-zA-Z] [a-zA-Z0-9 _-] *', чтобы разрешить любые буквенно-цифровые или подчеркивание или дефис. действительно ли ваш столбец идентификаторов содержит эти символы? потому что я бы рискнул предположить, поэтому он предполагает, что вы входите в роль, когда вы этого не делаете. Вы можете попробовать и сделать это, написав все из них 1 на 1, затем слейте их потом. – mic
Благодарим вас за советы. Роль - это буквенно-цифровой идентификатор, например: «Администратор». Он работает при определении маршрута как одного маршрута без детей («route» =>/rolepermission [/: roleid]/permissions [/: permissionid] [/ action /: action]), но мне нужен весь маршрут, определенный с детьми для правильное соответствие маршрута. – kinkee