zf2问题中的占位符属性

时间:2013-12-29 23:12:35

标签: php zend-framework2

我无法在占位符中获取值,占位符为空

<div class="form_element">
<?php 

    //$name = $form->get('name');

    $this->placeholder('name')->data="text value";
    $name= $form->get('name');
    echo $formLabel->openTag().$name->getOption('label')." ";
    echo $this->formInput($name);
    echo $formLabel->closeTag();
?>
</div>

1 个答案:

答案 0 :(得分:4)

在您的代码中,您使用了placeholder查看助手(more about),但我看不到您尝试获取占位符值的位置。您似乎询问了表单输入字段占位符属性。如果为true,则必须将其指定为属性。查看助手placeholder用于执行不同的任务。

您的表单视图助手使用有点奇怪。可以建议我的代码版本。

<div class="form_element">

    <?php $name = $form->get('name'); ?>
    <?php $name->setAttribute('placeholder', 'placeholder text'); ?>

    <?php echo $formLabel($name); ?>
    <?php echo $formInput($name); ?>
</div>

更好的解决方案是在表单元素定义中设置占位符。例如:

<?php

use Zend\Form\Form;

class MyForm extends Form
{
    public function __construct()
    {
        parent::__construct('<FORM_NAME>');

        $this->add(array(
            'name' => 'name',
            'type' => 'Zend\Form\Element\Text',
            'attributes' => array(
                'placeholder' => '<PLACEHOLDER_TEXT>',
            ),
        ));
    }
}