2014-09-03 6 views
-1

CRM 모듈의 접두어로 crm을 추가하고 싶습니다. 내가 test.dev/crm/calendar/index이 제대로 작동 사용할 때ZF2 경로가 기본으로 작동하지 않습니다.

이 내 module.config.php

'router' => array(
     'routes' => array(   
      'calendar' => array(
       'type' => 'segment', 
       'options' => array(
        'route' => '/crm/calendar[/:action][/:id]', 
        'constraints' => array(
         'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         'id'  => '[0-9]+', 
        ), 
        'defaults' => array(
         'controller' => 'Crm\Controller\Calendar', 
         'action'  => 'index', 
        ), 
       ), 
      ), 

에서 라우터 섹션입니다. 그러나 test.dev/crm/calendar에서 작동하지 않습니다. 나는 어떤 문제도 찾을 수 없었다.

나는 'route' => '/calendar[/:action][/:id]',을 사용할 때 test.dev/calendar를 사용할 수 있습니다. 하지만 접두사를 사용해야합니다. 내가 어떻게 해?

+3

경로 설정이 정확합니다. 다른 경로 여야합니다. 왜 그것이 작동하지 않는가? 어떤 오류가 발생합니까? – AlexP

+0

구성이 맞습니다. 일부 URL에서 작동하기 때문입니다. 내가/crm/calender를 사용하면 관련 작업으로 리디렉션되지 않습니다. –

+0

''route '=>'/ crm/calendar [/ : action [/ : id]] '' – Xerkus

답변

0

라우트 구성이 맞습니다. 이 경로에는 다른 모듈 경로에서 쓰기가있었습니다. 그게 문제 야. ZF2는 모든 경로와 경로를 쉽게 확인할 수있는 방법이 아닙니다.

1

나는 당신이

'may_terminate' => true, 그래서 경로의 정의는 다음과 같을 것입니다 추가해야한다는 것 같아요 : 그 작동하는 경우

'calendar' => array(
    'type' => 'segment', 
    'options' => array(
     'route' => '/crm/calendar[/:action][/:id]', 
     'constraints' => array(
      'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
      'id'  => '[0-9]+', 
     ), 
     'defaults' => array(
      'controller' => 'Crm\Controller\Calendar', 
      'action'  => 'index', 
     ), 
    ), 
    'may_terminate' => true, 
), 

을 시도해보십시오.

그렇지 않으면 그것을 분할하여 crm을 리터럴 경로로 만들 수도 있습니다.

'crm' => array(
    'type' => 'literal', 
    'options' => array(
     'route' => '/crm', 
    ), 
    'may_terminate' => false, 
    'child_routes' => array(
     'calendar' => array(
      'type' => 'segment', 
      'options' => array(
       'route' => '/calendar[/:action][/:id]', 
       'constraints' => array(
        'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'id'  => '[0-9]+', 
       ), 
       'defaults' => array(
        'controller' => 'Crm\Controller\Calendar', 
        'action'  => 'index', 
       ), 
      ), 
     ), 
    ), 
), 

는 그러나이 마지막 솔루션은 볼 CONFIGS은 수정해야합니다으로 당신은 항상 crm/calendar

+0

변경 사항을 추가합니다. 하지만 여전히 작동하지 않습니다. –

+1

@Asuraya 방금 내 자신의 응용 프로그램에서 시도하고 작동 ... 당신은 오타를 만들지 않고 라우터가 응용 프로그램의 다른 곳에서 덮어 쓰지 않았습니까? – Wilt

+0

예. 그것이 문제입니다. crm route가 다른 모듈에서 무시되었습니다. 감사. –

0

로 라우팅이된다는 것을 의미합니다. 마지막/(test.dev/crm/calendar, test.dev/crm/calendar/가 아닌) 시도하지 않았습니까