2

プロジェクトで zend Framework3 を使用しています。ドキュメントのリンクをたどることで、静的ナビゲーションを作成できます

次に、データベースからメニュー データを取得して、ナビゲーションを作成する必要があります。このために、私はアルバムモジュールの構成ファイルであるmodule.config.phpに構成を提供しました。

  <?php
  namespace Album;

  use Zend\Router\Http\Literal;
  use Zend\Router\Http\Segment;
  use Zend\ServiceManager\Factory\InvokableFactory;
  use Zend\Navigation\Service\DefaultNavigationFactory;
  use Album\Navigation\AlbumNavigationFactory;

  return [
    'controllers' => [
      'factories' => [
         Controller\AlbumController::class => Factory\AlbumControllerFactory::class,
        Controller\IndexController::class => InvokableFactory::class,
          ],
       ],

     // Add this section:
    'service_manager' => [
        'factories' => [
           'navigation' => Navigation\AlbumNavigationFactory::class,
            Model\AlbumTable::class => Factory\AlbumTableFactory::class,
         ],
       ],
     // The following section is new and should be added to your file:
     'router' => [
        'routes' => [
        'album' => [
            'type'    => Segment::class,
            'options' => [
                'route' => '/album[/:action[/:id]]',
                'constraints' => [
                    'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'id'     => '[0-9]+',
                ],
                'defaults' => [
                    'controller' => Controller\AlbumController::class,
                    'action'     => 'index',
                ],
            ],
        ],
        'index' => [
            'type'    => Segment::class,
            'options' => [
                'route' => '/index[/:action[/:id]]',
                'constraints' => [
                    'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'id'     => '[0-9]+',
                ],
                'defaults' => [
                    'controller' => Controller\IndexController::class,
                    'action'     => 'index',
                ],
              ],
            ],
         ],
      ],

     'view_manager' => [
        'template_path_stack' => [
          'album' => __DIR__ . '/../view',
       ],
    ],
  ];

Zend Framework2 では、ファクトリ クラスを使用してナビゲーション キーを単純に渡します。

    return array(
        'factories' => array(
            'Navigation' => 'Album\Navigation\AlbumNavigationFactory'
         ),
    );

Zend Framework3では、以下と同じことをしています

    'service_manager' => [
       'factories' => [
         'navigation' => Navigation\AlbumNavigationFactory::class,
          Model\AlbumTable::class => Factory\AlbumTableFactory::class,
        ],
    ],

Navigation\AlbumNavigationFactory::class を使用して、ファクトリを呼び出してデータを取得しています。しかし、私はナビゲーションを取得できません。どんな助けでも大歓迎です。

4

3 に答える 3

0

それがあなたが探しているものかどうかはわかりませんが、次のページをご覧になることをお勧めします。

https://github.com/fabiopaiva/zf2-navigation-bootstrap3

于 2016-11-21T04:04:45.433 に答える