2013-08-28 3 views
0

새 컨트롤러를 새로 만들면 제외하고 ZF2가 새로 설치됩니다. FooController.php 및 응용 프로그램/foo로 이동합니다. 왜 그럴까요, 상자에서 작업 한 ZF1에서 경로를 설정해야합니까?Zend Framework 2 경로가 작동하지 않습니다.

<?php 
/** 
* Zend Framework (http://framework.zend.com/) 
* 
* @link  http://github.com/zendframework/ZendSkeletonApplication for the canonical source repository 
* @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com) 
* @license http://framework.zend.com/license/new-bsd New BSD License 
*/ 

namespace Application\Controller; 

use Zend\Mvc\Controller\AbstractActionController; 
use Zend\View\Model\ViewModel; 

class FooController extends AbstractActionController 
{ 
    public function indexAction() 
    { 
     $view = new ViewModel(array(
      'foo' => 'The Foo Controller' 
     )); 
     return $view; 
    } 
} 

답변

1

예 예를 들어 하나의 경로를 설정해야합니다. 나는이 그것을 ZF2에서 작동하는 방법이라고 생각

'foo' => array(
     'type' => 'Zend\Mvc\Router\Http\Literal', 
     'options' => array(
      'route' => '/foo', 
      'defaults' => array(
       '__NAMESPACE__' => 'Application\Controller', 
       'controller' => 'Application\Controller\Foo', 
       'action'  => 'index', 
      ), 
     ), 
    ), 

'controllers' => array(
    'invokables' => array(
     'Application\Controller\Index' => 'Application\Controller\IndexController', 
     'Application\Controller\Foo' => 'Application\Controller\FooController', 
    ), 

:

/** 
* Generic Route 
*/ 
'generic_route' => array(
    'type' => 'segment', 
    'options' => array(
     'route' => '[/:controller[/:action[/:id[/:extra]]]][/]', 
     'constraints' => array(
      '__NAMESPACE__' => 'Application\Controller', 
      'action'  => '[a-zA-Z][a-zA-Z0-9_-]*', 
      'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
      'id'   => '[0-9]+', 
      'extra'   => '[a-zA-Z0-9_-]+', 
     ), 
     'defaults' => array(
      'controller' => 'Index', 
      'action'  => 'index', 
     ), 
    ), 
), 
0

솔루션은이 같은 새로운 경로를 만드는 것이 었습니다 : 당신은 설정 일반적인 경로는 컨트롤러/액션 형 라우팅을 처리 할 수 ​​있습니다 당신은 자동으로 그것을 할 수 있습니다, 당신은 각 새로운 컨트롤러에 대한 경로를 만들어야합니다.

+0

당신은 각 컨트롤러에 대한 경로가 필요하지 않습니다, 당신은 위의 컨트롤러 / – Andrew