我创建了简单的树枝过滤器
class Twig_Extension_Form extends Twig_Extension{
public function getName() {
return 'Form';
}
public function getFilters() {
return [
'fLabel'=>new Twig_Filter_Method($this,'label_filter')
];
}
public function getFunctions() {
return [];
}
public function label_filter($string,$id=null,$class=null){
return '<label'.(!is_null($id)&&is_string($id)?' id="'.$id.'"':null).(!is_null($class)&&is_string($class)?' class="'.$class.'"':null).'>'.$string.'</label>';
}}
Run Code Online (Sandbox Code Playgroud)
过滤器工作但当我在浏览器引号中显示代码时替换实体。当我使用 echo 而不是返回过滤器工作正常。
我想使用 return 因为并不总是标签应该立即显示。
问题解决了
public function getFilters() {
return [
'fLabel'=>new Twig_Filter_Method($this,'label_filter',['is_safe'=>['html']])
];
}
Run Code Online (Sandbox Code Playgroud)
禁用此过滤器的自动转义。第三个参数Twig_Filter_Method是
['is_safe'=>['html']]
或者
array('is_safe'=>array('html')) 在 PHP < 5.4.x
谢谢你的提示。这很有帮助。
| 归档时间: |
|
| 查看次数: |
1068 次 |
| 最近记录: |