twig - 致命错误:未捕获的 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"
}
我尝试了不同的选项(评论)。有谁能够帮我?我想不出来谢谢
解决方案
这是关于树枝上的版本,您可以解决更改代码的问题
//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));
这将适用于新版本的树枝
推荐阅读
- lua - Lua 挂载文件系统
- java - 将数据库身份验证添加到 Spring Data Rest 应用程序
- r - 读取具有相似 csv 名称的文件
- java - 如何在 Android 中的活动之间来回传递数据?
- php - 在 Laravel 中配置带保护的路由问题
- python - 快速 API - MySQL - SQLAlchemy:在 Pydantic 模型中获取 ValidationError 'Invalid type'
- flutter - 如何添加线性百分比指标
- javascript - google-maps-react 默认缩放不适用于 bounds 道具
- c - 如何在 C 中将 size_t 转换为 int?
- flutter - 我正在尝试从网站获取订单详细信息并收到错误“必须向文本小部件提供非空字符串”