zend - слишком мало аргументов для работы - PullRequest
0 голосов
/ 16 мая 2018

В indexcontroller.php код

namespace Application\Controller;

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

class IndexController extends AbstractActionController
{
    protected $table;

    public function __construct($table)
    {
        $this->table=$table;
    }

    public function indexAction()
    {

        $users=$this->table->fetchall();

        foreach($users as $user){


            echo $user->getName().'<br/>';

        }

        exit;

        return new ViewModel();
    }

}

это мой код файла module.php

namespace Application;

use Zend\Db\Adapter\AdapterInterface;
use Zend\Db\TableGateway\TableGateway;
use Zend\Db\ResultSet\ResultSet;
use Zend\ModuleManager\Feature\ConfigProviderInterface;

class Module implements ConfigProviderInterface
{

    const VERSION = '3.0.3-dev';

    public function getConfig()
    {
        return include __DIR__ . '/../config/module.config.php';
    }

    public function getServiceConfig()
    {
        return [
        'factories'=>[
        Model\UserTable::class=>function($container){
            $tableGateway=$container->get(Model\UserTableGateway::class);
            return new MOdel\UserTable($tableGateway);
        },
        Model\UserTableGateway::class=>function($container){
            $adapter=$container->get(AdapterInterface::class);
            $resultSetPrototype=new ResultSet();
            $resultSetPrototype->setArrayObjectPrototype(new Model\User);
            return new TableGateway('user', $adapter, null, $resultSetPrototype);
        }
        ]
        ];


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

}
}

При запуске этого кода отображается сообщение об ошибке:

Файл:

C:\xampp\htdocs\ZEND\ZendSkeletonApplication-master\module\Application\src\Controller\IndexController.php:17

Сообщение:

Слишком мало аргументов для работы Application \ Controller \ IndexController :: __ construct (), 0 передано в C: \ XAMPP \ HTDOCS \ ZEND \ ZendSkeletonApplication-мастер \ поставщика \ ZendFramework \ Зенд-ServiceManager \ SRC \ Factory \ InvokableFactory.php в строке 30 и ровно 1 ожидается

Кто-нибудь может помочь мне решить эту проблему?

Спасибо

1 Ответ

0 голосов
/ 16 мая 2018

В вашем файле module.php модель должна быть Model.

public function getServiceConfig()
    {
        return [
        'factories'=>[
        Model\UserTable::class=>function($container){
            $tableGateway=$container->get(Model\UserTableGateway::class);
            **return new MOdel\UserTable($tableGateway);**
        },
        Model\UserTableGateway::class=>function($container){
            $adapter=$container->get(AdapterInterface::class);
            $resultSetPrototype=new ResultSet();
            $resultSetPrototype->setArrayObjectPrototype(new Model\User);
            return new TableGateway('user', $adapter, null, $resultSetPrototype);
        }
        ]
        ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...