是否有可能让Twig强制渲染破坏的括号变量{{example}而不是抛出异常?

问题描述 投票:1回答:1

我正在使用Twig来呈现客户生成的模板。如果客户错过了一个结束括号:

目前,twig抛出一个\ Twig_Error并返回一条消息:

Unexpected "}" in "custom-template-render5b91be77b99485.95837275" at line 2.

是否有可能让Twig呈现尽可能多的变量(可能是模板中的起始变量),然后在获得流氓括号之后放弃?

$parameters = [
  'mine' => 'sentence', 
  'variable' => 'broken',
  'another' => 'broken',
];
$templateString  = "Here is my {{ mine }} with a broken {{ variable } and {{ another }}";
echo $twigEngine->render($templateString, $parameters);

以上显示缺少关闭第二个括号。如果输出是:

"Here is my sentence with a broken {{ variable } and {{ another }}"

任何想法,将不胜感激。

php laravel symfony templates twig
1个回答
1
投票

保存前验证用户输入

$error = null;
try {
    $twigEngine->render($templateString, $parameters);
}catch(\Exception $e) {
    $error = $e->getMessage();
}

if ($error) {
    //display error
}else{
    //save customer template        
}
© www.soinside.com 2019 - 2024. All rights reserved.