Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework 使用标签装饰器-Zend添加所需标记的最佳方法是什么_Zend Framework_Zend Form_Zend Form Element - Fatal编程技术网

Zend framework 使用标签装饰器-Zend添加所需标记的最佳方法是什么

Zend framework 使用标签装饰器-Zend添加所需标记的最佳方法是什么,zend-framework,zend-form,zend-form-element,Zend Framework,Zend Form,Zend Form Element,我有一个关于使用Zend_Form_Decorator_Label的问题,为了在需要表单元素时获得以下结果,我需要获取标签文本*我想知道如何以最可重用的方式实现这一点 是编写新的装饰程序还是覆盖zend\u View\u helper\u FormLabel? 也许还有其他方法可以做到这一点 任何帮助都将不胜感激。由于标签装饰器将CSS类required添加到附加到根据需要指定的表单输入元素的元素中,因此我能够使用CSS:在选择器之后添加符号(如星号),并带有内容()声明: label.requ

我有一个关于使用Zend_Form_Decorator_Label的问题,为了在需要表单元素时获得以下结果,我需要获取标签文本*我想知道如何以最可重用的方式实现这一点

是编写新的装饰程序还是覆盖zend\u View\u helper\u FormLabel? 也许还有其他方法可以做到这一点


任何帮助都将不胜感激。

由于标签装饰器将CSS类
required
添加到附加到根据需要指定的表单输入元素的
元素中,因此我能够使用CSS
:在
选择器之后添加符号(如星号),并带有
内容()
声明:

label.required:after {
    content: "*";
}

但是,我发现要获得正确的间距、让星号以粗体或我想要的颜色呈现等等都很棘手。因此,我通常会使用CSS以粗体或其他颜色呈现标签本身,然后在表单的顶部或底部添加图例(“需要粗体/红色字段”或类似内容)(通常通过创建我自己的自定义图例装饰器,但有时在视图脚本本身中)。

创建装饰器时,可以添加以下选项之一:

$userName->getDecorator('Label')->setReqSuffix(' *');
$userName->getDecorator('Label')->setOptSuffix('(Optional) ');
  • optionalPrefix:当元素为可选元素时要使用的标签前缀
  • optionalSuffix:当元素为可选元素时使用的标签后缀
  • requiredPrefix:需要元素时使用的标签前缀
  • requiredSuffix:需要元素时使用的标签后缀
代码示例:

$elementDecorators = array(
    'ViewHelper',
    array('Label', array('requiredSuffix' => ' *')),
);

$userName = new Zend_Form_Element_Text('userName');
$userName->setDecorators($elementDecorators);
$userName->setLabel('User Name');
或者,您也可以在现有装饰器上显式设置后缀/前缀:

$userName->getDecorator('Label')->setReqSuffix(' *');
$userName->getDecorator('Label')->setOptSuffix('(Optional) ');
我在标签数组中添加了带有'requiredPrefix'参数的requiredPrefix

array('Label', array('tag' => 'span', 'escape' => false, 'requiredPrefix' => '<span class="required">* </span>')),
array('Label',array('tag'=>'span',escape'=>false,'requiredPrefix'=>'*'),
array('Label', array('tag' => 'span', 'escape' => false, 'requiredPrefix' => '<span class="required">* </span>')),