代码之家  ›  专栏  ›  技术社区  ›  Kalai Selvan

zend-参数太少,无法运行

  •  0
  • Kalai Selvan  · 技术社区  · 6 年前

    在里面 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();
        }
    
    }
    

    这是我的模块。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
    

    消息:

    参数太少,无法运行 应用程序\控制器\索引控制器:\uu construct(),传入0 C: \xampp\htdocs\ZEND\ZendSkeletonApplication master\vendor\zendframework\ZEND servicemanager\src\Factory\InvokableFactory。php 第30行,预计正好是1

    谁能帮我解决这个问题?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   Kawaljeet Singh    6 年前

    在您的模块中。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);
            }
            ]
            ];
    }