Zend framework Zend框架:将起始字母设置为大写

Zend framework Zend框架:将起始字母设置为大写,zend-framework,validation,capitalization,Zend Framework,Validation,Capitalization,对于我的学校项目,我试着用Zend制作一个表格 我想插入一个验证器,第一个字母必须是大写字母 我应该在这段代码中更改什么才能使其正常工作 $voornaam = $this->createElement('text', 'voornaam'); $voornaam->setLabel('Voornaam:') ->setAttrib('size', 50)->addValidator('StringLength', fals

对于我的学校项目,我试着用Zend制作一个表格

我想插入一个验证器,第一个字母必须是大写字母

我应该在这段代码中更改什么才能使其正常工作

        $voornaam = $this->createElement('text', 'voornaam');
    $voornaam->setLabel('Voornaam:')
            ->setAttrib('size', 50)->addValidator('StringLength', false,array(2,30))
                ->setRequired(true);

如果有人能帮我做这件事,请提前谢谢

此自定义验证器可能会有帮助:

class My_Validate_FirstCapital extends Zend_Validate_Abstract {

    const CAPITAL = 'capital';

    protected $_messageTemplates = array(
        self::CAPITAL => "First letter is not capital"
    );

    public function isValid($value, $context = null) {            

        if ($value != ucfirst($value)) {
            $this->_error(self::CAPITAL);
            return false;
        }

        return true;
    }    
}
我没有测试它,但它应该工作

另一种方法是使用,例如


您可以始终使用regex validiator处理类似的事情。我有点忙,所以请随时介入并提供完整的代码示例


哦,刚才有人做了

恐怕默认情况下没有这样的验证器。您必须创建自己的验证器类并将其添加到表单元素中。我尝试了第一个答案,因为这将是最好的解决方案。我把它放在课堂上应该使用的地方。当填写表格并点击提交时,我没有收到任何错误。我应该做些什么才能让它发挥作用?Zend_Validate_正则表达式解决方案像charm@JorritK. 创建新的验证器
$v=new My_Validate_FirstCapital()
然后将其添加到元素中(比如Zend_Validate_Regex)。效果非常好,我还不能投票,但只要我可以,我会尽快投票。非常感谢D@JorritK. 很高兴我能帮忙。你可以接受答案。这也会给你一些分数。
//match first capital letter
$validator = new Zend_Validate_Regex(array('pattern' => '/^[A-Z]/'));
// and add it to your element, ->addValidator($validator)