을 반환하지 name은 controller, index는 action 이름, delete는 레코드의 id를 가져 오는 매개 변수입니다. 내가 코드의이 부분을 사용하고이 링크를 만들려면 :ZF2 fromRoute 내가 이런 링크를 만들려고하고 기본 작업 이름
$delUrl = $this->url()->fromRoute('management-users', array(
'controller' => 'users',
'action' => 'index',
'delete' => $siteData['id'],
));
내 설정은 다음과 같다 :
somesite.com/management/ :
'router' => array( 'routes' => array( 'management-index' => array( 'type' => 'segment', 'options' => array( 'route' => '/management[/:controller][/:action][/delete/:delete][/:id]', 'constraints' => array( 'delete' => '[0-9]+' , 'id' => '[0-9]+' ), 'defaults' => array( '__NAMESPACE__' => 'Management\Controller', 'controller' => 'Index', 'action' => 'index' ), ), ), ), ),
결과는이입니다 사용자/삭제/10
이 기능은 작업 이름을 생략하기 때문에 내 기본 동작을 누른 다음 작업 이름으로 삭제 가져옵니다 그리고 마침내 404 오류가 발생합니다. 보시다시피 링크에서 구문 "delete"를 생략하지 못하게하는 매개 변수 "id"가 있습니다. url에서 "delete"를 생략하면 ZF2는 "delete"가 아닌 "id"로 입력됩니다. 내 기본 동작을 변경할 수 없습니다. URL에 작업 이름을 입력하도록 ZF2에 알리는 방법이 있습니까?
'router' => array(
'routes' => array(
'management-users' => array(
'type' => 'segment',
'options' => array(
'route' => '/management[/:controller][/:action][/delete/:delete][/:id]',
'constraints' => array(
'delete' => '[0-9]+' ,
'id' => '[0-9]+'
),
'defaults' => array(
'__NAMESPACE__' => 'Management\Controller',
'controller' => 'Users',
'action' => 'index'
),
),
),
),
),
돈 '
버그 신고 : https://github.com/zendframework/zf2/issues/6744 – Abadis