我正在使用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 }}"
任何想法都会受到赞赏。
答案 0 :(得分:1)
在保存用户输入之前先对其进行验证
$error = null;
try {
$twigEngine->render($templateString, $parameters);
}catch(\Exception $e) {
$error = $e->getMessage();
}
if ($error) {
//display error
}else{
//save customer template
}