0

だから私はZF2の新しくて新鮮なインストールを持っています。新しいコントローラーを作成する場合を除いて、すべてが機能します... FooController.phpと私はapplication / fooに行きますすぐに使える ZF1 でのルートの設定

<?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;
    }
}
4

2 に答える 2

1

はい、少なくとも 1 つのルートを設定する必要があります。コントローラー/アクション タイプのルーティングを処理するための一般的なルートを設定できます。

/**
 * 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',
        ),
    ),
),
于 2013-08-28T13:06:58.230 に答える
0

解決策は、次のような新しいルートを作成することでした。

    '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',
    ),

これがZF2での仕組みだと思います。自動的に行うことができます。新しいコントローラーごとにルートを作成する必要があります

于 2013-08-28T13:12:47.383 に答える