传递给 Twig_Filter::__construct() 的参数 1 必须是字符串的实例,给定的字符串
Argument 1 passed to Twig_Filter::__construct() must be an instance of string, string given
我对 TWIG 有疑问。此代码在学校有效,但绝对不适用于我的笔记本电脑。我尝试了一个简单的代码,但出现错误:
Catchable fatal error: Argument 1 passed to Twig_Filter::__construct() must be an instance of string, string given, called in /opt/lampp/htdocs/webalizer/projetSilex/vendor/twig/twig/lib/Twig/Extension/Core.php on line 139 and defined in /opt/lampp/htdocs/webalizer/projetSilex/vendor/twig/twig/lib/Twig/Filter.php on line 35
我使用 php 5.6 / SILEX 2.0 / Twig 2.0
感谢您的帮助。
我的代码很简单但是不起作用:
require_once __DIR__.'/vendor/autoload.php';
$app = new Silex\Application();
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => __DIR__.'/views',
));
$app->get('/', function(){
return "hello";
});
$app->get('/hello/{name}', function($name)use($app){
return $app['twig']->render('hello.twig',
array("name"=>$name
));
});
$app->run();>
@CharlotteDunois 指出了这一点,但是 Twig 2.0 需要 >=PHP7.0,所以在你的环境中 (php 5.6) 你不能使用 Twig 2.0。来自 Twig official documentation:
Prerequisites
Twig needs at least PHP 7.0.0 to run.
请注意,对于 PHP5.x 分支,您仍有 Twig 1.x 可用
只是我的 2 美分。我无法升级 PHP 版本(共享主机),所以我不得不更改 package.json 中的 Twig 版本以使用 1.x 版本。
替换此行:
"symfony/twig-bridge": "~2.8|^3.0"
, -> "symfony/twig-bridge": "~2.8|3.0.*",
然后,我添加了这一行:
"twig/twig" : "~1.0"
并且在 PHP 服务器 v 5.6
上一切正常
我对 TWIG 有疑问。此代码在学校有效,但绝对不适用于我的笔记本电脑。我尝试了一个简单的代码,但出现错误:
Catchable fatal error: Argument 1 passed to Twig_Filter::__construct() must be an instance of string, string given, called in /opt/lampp/htdocs/webalizer/projetSilex/vendor/twig/twig/lib/Twig/Extension/Core.php on line 139 and defined in /opt/lampp/htdocs/webalizer/projetSilex/vendor/twig/twig/lib/Twig/Filter.php on line 35
我使用 php 5.6 / SILEX 2.0 / Twig 2.0
感谢您的帮助。
我的代码很简单但是不起作用:
require_once __DIR__.'/vendor/autoload.php';
$app = new Silex\Application();
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => __DIR__.'/views',
));
$app->get('/', function(){
return "hello";
});
$app->get('/hello/{name}', function($name)use($app){
return $app['twig']->render('hello.twig',
array("name"=>$name
));
});
$app->run();>
@CharlotteDunois 指出了这一点,但是 Twig 2.0 需要 >=PHP7.0,所以在你的环境中 (php 5.6) 你不能使用 Twig 2.0。来自 Twig official documentation:
Prerequisites
Twig needs at least PHP 7.0.0 to run.
请注意,对于 PHP5.x 分支,您仍有 Twig 1.x 可用
只是我的 2 美分。我无法升级 PHP 版本(共享主机),所以我不得不更改 package.json 中的 Twig 版本以使用 1.x 版本。
替换此行:
"symfony/twig-bridge": "~2.8|^3.0"
, -> "symfony/twig-bridge": "~2.8|3.0.*",
然后,我添加了这一行:
"twig/twig" : "~1.0"
并且在 PHP 服务器 v 5.6
上一切正常