簡體   English   中英

使用Zend表單在Zend Framework 2中添加自定義屬性

[英]Adding custom attributes in Zend Framework 2 using the Zend Form

我要實現的是向表單添加自定義屬性,這些屬性是:

'validType' => 'remote[\'/catalogos/acl/compruebarecurso\',\'nombre\']', 
'invalidmessage' => 'Al parecer el nombre ya existe'.

問題在於視圖,因為它無法生成正確的HTML

class RecursosForm extends Form 
    { 
        // TODO - Insert your code here 

        /** 
         */ 
        public function __construct($name = null){ 
            parent::__construct($name); 

            $this->add(array( 
                    'name' => 'nombre', 
                    'type' => 'Zend\Form\Element\Text', 
                    'attributes' => array( 
                            'class' => 'easyui-validatebox', 
                            'validType' => 'remote[\'/catalogos/acl/compruebarecurso\',\'nombre\']', 
                            'invalidmessage' => 'Al parecer el nombre ya existe' 
                    ), 
                    'options' => array( 
                            'label' => 'Recurso:', 
                            'label_attributes' => array('class'  => 'fitem'), 

                    ) 
            )); 
        } 
    }  

視圖幫助程序不會產生錯誤的HTML,但實際上是在阻止它。 添加的屬性將導致無效的HTML,因此ZF2會將其刪除。

您可以通過擴展抽象表單視圖幫助器並定義自己的$validAttributes來覆蓋此$validAttributes ,盡管它仍然會導致錯誤的HTML。

您應該考慮使用HTML 5自定義數據屬性 (帶有前綴data-*屬性),因為它們是有效的,並且不會被標准表單視圖助手過濾掉。

'attributes' => [ 
    'class'                => 'easyui-validatebox', 
    'data-valid-type'      => 'remote[\'/catalogos/acl/compruebarecurso\',\'nombre\']', 
    'data-invalid-message' => 'Al parecer el nombre ya existe' 
], 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM