2

Akrabats チュートリアルに従ってみますが、アプリケーション/インデックスは機能していますが、アルバム部分は機能していません。

ZendSkeletonModuleでも試してみましたが、うまくいきませんでした。

どちらの場合もエラーは次のとおりです。

album/album (resolves to invalid controller class or alias: album/album)

ZF2 マスターと beta4 タグで試してみました (ただし、beta4 タグでは getEventManager メソッドが見つからないという php エラーが発生します)

Akrabats Tutorial からコードを取得し、失敗した後はGitHub Repoのコードを使用しました。残念ながら、助けを求めるフォーラムやコメント セクションはありません。

チュートリアルと、module.config.php の Skeleton (zfcUser には同じ違いがあります) にいくつかの相違点が見つかりました (これが問題の核心だと思います)。

チュートリアルではclasses、コントローラー インデックスで zfcUser と Skeleton を使用してinvokablesいますが、エラーが変わらないため、問題ではないようです。

私のmodule.configは現在次のようになっています:

<?php

return array(

    // Controllers in this module
    'controller' => array(
        'invokables' => array(
            'album/album' => 'Album\Controller\AlbumController',
        ),        
    ),


    // Routes for this module
    'router' => array(
        'routes' => array(
            'album' => array(
                'type' => 'Literal',
                'priority' => 1000,
                'options' => array(
                    'route' => '/album',
                    'defaults' => array(
                        'controller' => 'album/album',
                        'action' => 'index',
                    ),
                ),
                'may_terminate' => true,
                'child_routes' => array( 
                    'misc' => array (
                        'type'    => 'segment',
                        'options' => array(
                            'route'    => '/album/[:action][/:id]',
                            'constraints' => array(
                                'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                                'id'     => '[0-9]+',
                            ),
                            'defaults' => array(
                                'controller' => 'album/album',
                                'action'     => 'index',
                            ),
                        ),
                    ),
                ),
            ),
        ),
    ),    

    // View setup for this module
    'view_manager' => array(
        'template_path_stack' => array(
            'album' => __DIR__ . '/../view',
        ),
    ),
);

アルバム\コントローラー\アルバムコントローラー:

<?php

namespace Album\Controller;

use Zend\Mvc\Controller\ActionController,
    Zend\View\Model\ViewModel,
    Album\Model\AlbumTable,
    Album\Model\Album,
    Album\Form\AlbumForm;

class AlbumController extends ActionController
{
// [....]
}

このエラーを修正するためにどこを見ればよいかわかりません。どなたかご存知ですか?

特に言及されていない限り、コードは github のオリジナル (上記のリンクを参照) に似ています。

ティア

4

4 に答える 4

7

ここでの違いは、invokables だけでなく、配列キーが複数形で"controller s " になったことです。あなたのコードでは、「invokables」はすでに変更されていますが、「コントローラー」をキーとして使用しているようです。

    'controllers' => array(
            'invokables' => array(
                    'album/album' => 'Album\Controller\AlbumController',
            ),
    ),
于 2012-07-07T15:36:36.427 に答える
4

どうやら、コントローラーの配列に変更があるようです。ここで、classes キーが invokables に変更されました: module.config.php で

    'controller' => array(
            'classes' => array(
                    'album/album' => 'Album\Controller\AlbumController',
            ),
    ),

に変更する必要があります

    'controllers' => array(
            'invokables' => array(
                    'album/album' => 'Album\Controller\AlbumController',
            ),
    ),
于 2012-07-06T10:34:55.980 に答える
3

ActionController クラスは ZF2-beta4 ではなくなったようです。そのため、AlbumController は次のようにする必要があります。

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

class AlbumController extends AbstractActionController {
   .....
}
于 2012-07-05T19:44:49.973 に答える
0

config/application.config.php を正しくする必要があります

<?php
return array(
    'modules' => array(
        'Application',
        'Album',
    ),
    'module_listener_options' => array(
        'config_glob_paths'    => array(
            'config/autoload/{,*.}{global,local}.php',
        ),
        'module_paths' => array(
            './module',
            './vendor',
        ),
    ),
);
于 2012-10-15T19:57:07.757 に答える