0

私は Zend Fw 3 で非常に新しいです。私はhttps://docs.zendframework.com/tutorials/ に従いました module.php にコントローラー設定を追加しました

public function getControllerConfig(){
    return[
        'factories' = >[
            Controller\DocumentController::class = > function($container) {
                return new Controller\DocumentController(
                    $container->get(Model\DocumentTable::class)
                );
            },
        ],
    ];
}

これを実行すると、次のエラーに直面しました。

エラー

4

2 に答える 2

0

AutoloaderProviderInterface以下のように実装してみてください。

<?php

namespace Document;

use Zend\Db\ResultSet\ResultSet;
use Zend\Db\TableGateway\TableGateway;
use Zend\ModuleManager\Feature\ConfigProviderInterface;
use Zend\ModuleManager\Feature\AutoloaderProviderInterface;

class Module implements ConfigProviderInterface, AutoloaderProviderInterface
{
    public function getConfig()
    {
       return include __DIR__ . '/../config/module.config.php';
    }

    public function getServiceConfig()
    {
       return [
            'factories' => [
                    Model\DocumentTable::class => function($container) {
                        $tableGateway = $container->get(Model\DocumentTableGateway::class);
                        return new Model\DocumentTable($tableGateway);
                    },
                    Model\DocumentTableGateway::class => function ($container) {
                        $dbAdapter = $container->get(AdapterInterface::class);
                        $resultSetPrototype = new ResultSet();
                        $resultSetPrototype->setArrayObjectPrototype(new Model\Document());
                        return new TableGateway('document', $dbAdapter, null, $resultSetPrototype);
                    },
            ],
       ];
    }

    public function getControllerConfig()
    {
       return [
            'factories' => [
                    Controller\DocumentController::class => function($container) {
                        return new Controller\DocumentController(
                                $container->get(Model\DocumentTable::class)
                        );
                    },
            ],
       ];
   }

   public function getAutoloaderConfig()
   {
       return [
           'Zend\Loader\StandardAutoloader' => [
               'namespaces' => [
                   __NAMESPACE__ => __DIR__,
               ],
           ],
       ];
   }
}

__NAMESPACE__ => __DIR__使用しているディレクトリ構造とファイルの場所によっては、行のパスを変更する必要がある場合がありModule.phpます。

于 2017-02-25T19:18:06.560 に答える