首页 > 解决方案 > 致命错误:未捕获的 TypeError:参数 1 传递给 Slim\Views\Twig

问题描述

我不断收到致命错误:未捕获的类型错误:传递给 Slim\Views\Twig::__construct() 的参数 1 必须是 Twig\Loader\LoaderInterface 的实例,给定字符串...

代码是:

require DIR .'/vendor/autoload.php'; 
$container = new Container(); AppFactory::setContainer($container); 
$app = AppFactory::create(); 
//$twig = new Twig('./templates',['cache'=> false]); 
//$twigMiddleware = new TwigMiddleware($twig, $container, $app->getRouteCollector()
->getRouteParser(), ''); 
//$app->add($twigMiddleware); 
//$routeParser = $app->getRouteCollector()->getRouteParser();
//$twig = new Twig(DIR.'/templates'); 
//$twigMiddleware = new TwigMiddleware($twig, $container,$routeParser); 
//$app->add($twigMiddleware); 
$container->set('view', function(){ return new Twig('./templates', ['cache'=>false]); });
$app->add(TwigMiddleware::createFromContainer($app));

我在用着

  "require": {
    "slim/slim": "4.3.0",
    "slim/psr7": "^0.6.0",
    "php-di/php-di": "^6.0",
    "slim/twig-view": "3.x-dev"
}

我尝试了不同的选项(评论)。有谁能够帮我?我想不出来谢谢

标签: twigslim-4

解决方案


这是关于树枝上的版本,您可以解决更改代码的问题


    //set view container before create app
    $container->set('view', function () {
        return Twig::create('views', ['cache'], false)
    })

    //and instead adding $twigmiddleware code this at the same line of $twigmiddleware
    $app->add(Twigmiddleware::createFromContainer($app));

这将适用于新版本的树枝


推荐阅读