1

我正在使用 Zend Form,在编辑时我希望值像 ucfirst(values) ;. 我找到了过滤器 'filters' => array('StringToUpper'),但它们适用于孔输入。任何想法 ?谢谢

4

3 回答 3

3

不存在这样的过滤器,但创建自己的过滤器很简单:

 class My_Filter_StringUCFirst implements Zend_Filter_Interface {
     public function filter($value){
         return ucfirst($value);
     }
 }
于 2013-06-13T14:47:10.990 回答
1

也许是时候使用自定义过滤器了。

就像是:

class UcFirstFilter implements Zend_Filter_Interface
{
    public function filter($value)
    {
        // perform some transformation upon $value to arrive on $valueFiltered
        $valueFiltered=ucfirst($value);
        return $valueFiltered;
    }
}
$filterChain = new Zend_Filter();
$filterChain->addFilter(new UcFirstFilter());
于 2013-06-13T14:52:25.463 回答
0

我找到了这个解决方案,我改变了我的填充功能:

public function populate($data) {
 ....

    foreach ($data as $field => $value) {

            if (in_array($field, array("fields you want in ucfirst")) )
                $value=  ucfirst ($value);

            $this->{$field}->setValue($value);
      }

    return $this;
}

希望这会有所帮助。

于 2013-06-13T14:47:52.820 回答