我正在尝试创建,用于颜色输入字段的html集合..这将使用javascript动态添加
我的ColorFieldset代码是
namespace Dashboard\Form;use Zend\Form\Fieldset;use Zend\InputFilter\InputFilterProviderInterface;class ColorFieldset extends Fieldset implements InputFilterProviderInterface{ public function __construct() { parent::__construct('color'); $this->add(array( 'name' => 'hash', 'options' => array( 'label' => 'Color' ), 'attributes' => array( 'required' => 'required', 'class' => 'input-mini' ) )); } /** * @return array \*/ public function getInputFilterSpecification() { return array( 'hash' => array( 'required' => true, ) ); }}
并将其添加到表单中
$this->add(array( 'type' => 'Zend\Form\Element\Collection', 'name' => 'colors', 'options' => array( 'count' => 2 , 'should_create_template' => true, 'allow_add' => true, 'target_element' => array( 'type' => 'Dashboard\Form\ColorFieldset' ) )));
并在我的视图文件.. colors.phtml
<div id="colors_container" class=""> <?php echo $this->formCollection( $form->get('colors')); ?></div>
它的打印输出就像
<div class="" id="colors_container"> <label><span>Color</span><input type="text" value="" class="input-mini" required="required" name="hash"></label> <label><span>Color</span><input type="text" value="" class="input-mini" required="required" name="hash"></label> <span data-template='<label><span>Color</span><input name="hash" required="required" class="input-mini" type="text" value=""></label>'></span></div>
它应该打印像…在zf2 manual 2.0解释
<div class="" id="colors_container"> <label><span>Color</span><input type="text" value="" class="input-mini" required="required" name="colors[0][hash]"></label> <label><span>Color</span><input type="text" value="" class="input-mini" required="required" name="colors[1][hash]"></label> <span data-template='<label><span>Color</span><input name="colors[__index__][hash]" required="required" class="input-mini" type="text" value=""></label>'></span></div>
我希望html输入名称为颜色[__ index __] [hash].但它打印名称为< input type =“text”value =“”class =“input-mini”required =“required”name =“hash”> .
在上面的例子中.我只会在post $_POST [‘hash’]中获得一个颜色名称.
为什么zf2不打印< input type =“text”value =“”class =“input-mini”required =“required”name =“colors [0] [hash]”> ?请告诉我的代码有什么问题.
解决方法:
哦,我终于找到了答案.我得打电话
$form->prepare();
在视图中渲染任何内容之前.现在它有效
来源:https://www.icode9.com/content-1-337601.html联系客服