Php ZF2输入过滤器更改消息颜色

Php ZF2输入过滤器更改消息颜色,php,html,zend-framework2,Php,Html,Zend Framework2,我使用ZF2表单创建了典型表单,并希望使用ZF2 InputFilter添加验证。这是成功的,但错误信息的颜色是黑色,这看起来很奇怪。我尝试使用我搜索过的方法来改变颜色,如下所示: array( 'name' =>'NotEmpty', 'options' => array( 'messages' => array( NotEmpty::IS_EMPTY => '<div style="color:red

我使用ZF2表单创建了典型表单,并希望使用ZF2 InputFilter添加验证。这是成功的,但错误信息的颜色是黑色,这看起来很奇怪。我尝试使用我搜索过的方法来改变颜色,如下所示:

array(
    'name'    =>'NotEmpty',
    'options' => array(
        'messages' => array(
            NotEmpty::IS_EMPTY => '<div style="color:red;">Please enter User Name!</div>'
        ),
    ),
),
数组(
'name'=>'NotEmpty',
“选项”=>数组(
'消息'=>数组(
NotEmpty::IS_EMPTY=>“请输入用户名!”
),
),
),

但是,消息的颜色并没有变为红色,而是显示了带有样式的标记,换句话说,只是简单的HTML。实现我的需求的正确方法是什么?

最简单的方法是修改视图帮助器;)

module.config.php中

'view_helpers' => [
    'factories' => [
        'formelementerrors' => function($vhm) {
            $fee = new \Zend\Form\View\Helper\FormElementErrors();
            $fee->setAttributes([
                'class' => 'your error classes'
            ]);
            return $fee;
        }
    ]
]
使用
$this->formElementErrors()
呈现错误时的另一种方法是直接在ViewHelper中添加错误类

$this->formElementErrors($element, ['class' => 'my error classes']);

最简单的方法是修改视图辅助对象;)

module.config.php中

'view_helpers' => [
    'factories' => [
        'formelementerrors' => function($vhm) {
            $fee = new \Zend\Form\View\Helper\FormElementErrors();
            $fee->setAttributes([
                'class' => 'your error classes'
            ]);
            return $fee;
        }
    ]
]
使用
$this->formElementErrors()
呈现错误时的另一种方法是直接在ViewHelper中添加错误类

$this->formElementErrors($element, ['class' => 'my error classes']);

你知道这是CSS的问题吗?检查父元素得到了什么类,然后更改CSS-class的属性。对不起,我不明白。刚刚检查了元素,发现它的类是“输入错误”,你的意思是我必须使用JavaScript更改它的属性吗?不,你使用CSS将类
input color
的样式设置为所需的
color:red
。这实际上与编程无关。对不起,我错误地检查了HTML,实际上InputFilter生成的消息没有任何CSS类。就像这样:
  • 请输入用户名
,我该怎么办?我的缺点是,我的项目中有太多自定义内容,不再知道默认设置你知道这是CSS的问题吗?检查父元素得到了什么类,然后更改CSS-class的属性。对不起,我不明白。刚刚检查了元素,发现它的类是“输入错误”,你的意思是我必须使用JavaScript更改它的属性吗?不,你使用CSS将类
input color
的样式设置为所需的
color:red
。这实际上与编程无关。对不起,我错误地检查了HTML,实际上InputFilter生成的消息没有任何CSS类。就像这样:
  • 请输入用户名
,我该怎么办?我的缺点是,我的项目中有太多自定义内容,不再知道默认设置DI在
config/autoload/global.php
中添加了代码,因为在
module.confing.php
中什么都没有发生。添加了css类,但在
  • 中添加了css类,并将其添加到
    ,因此消息颜色不会改变。它变成这样:
    • 请输入用户名
    。CSS类只是一行样式
    color:red
    。在Firefox中,颜色发生了变化,但在Safari中没有。如何解决这个问题?@yunhasnawa我把这个留给你自己去解决。现在,在需要它的地方有了一个error类。从那时起,你就可以做剩下的事了。顺便说一句,如果module.config.php中没有任何更改,那么模块中的所有配置都不起作用。其余的都是纯CSS,我拒绝帮忙。我很抱歉我的问题太多了。我刚刚意识到safari没有加载我的css,所以列表颜色没有改变。非常感谢你的帮助。致以最诚挚的问候。无需道歉;)这只是你给我的一个“错误”,有几个可能的原因,都归结为彻底检查:>我在
    config/autoload/global.php
    中添加了你的代码,因为在
    module.confing.php
    中什么都没有发生。添加了css类,但在
  • 中添加了css类,并将其添加到
    ,因此消息颜色不会改变。它变成这样:
    • 请输入用户名
    。CSS类只是一行样式
    color:red
    。在Firefox中,颜色发生了变化,但在Safari中没有。如何解决这个问题?@yunhasnawa我把这个留给你自己去解决。现在,在需要它的地方有了一个error类。从那时起,你就可以做剩下的事了。顺便说一句,如果module.config.php中没有任何更改,那么模块中的所有配置都不起作用。其余的都是纯CSS,我拒绝帮忙。我很抱歉我的问题太多了。我刚刚意识到safari没有加载我的css,所以列表颜色没有改变。非常感谢你的帮助。致以最诚挚的问候。无需道歉;)这只是一个“错误”,就像你给我的,有几个可能的原因,都归结为简单的彻底检查:>