[英]ZF2 Doctrine Form Annotation Type Select
我對選擇元素的注釋有疑問。 我總是得到一個輸入字段。
<div class="form-group "><label>test:</label><input type="number" name="test" class="form-control" value="1"></div>
這是我的注釋。
/**
* @var integer
*
* @ORM\Column(name="test", type="integer", nullable=false)
* @Annotation\Type("Zend\Form\Element\Select")
* @Annotation\Filter({"name":"StringTrim"})
* @Annotation\Options({"label":"test:", "value_options":{"0":"yes","1":"no"}})
*/
private $persistent = '0';
我忘記了什么嗎?
親切的問候 :)
更新2014-04-23
在我的行動中,我用
$builder = new DoctrineAnnotationBuilder($entityManager);
$form = $builder->createForm( $user );
$form->setHydrator(new DoctrineHydrator($entityManager,'Test\Entity\Test'));
這是我的看法
<?
$form = $this->form;
$form->setAttribute('action', $this->url('user/edit', array('id' => $this->id))); //'contact/process'));
$form->setAttribute('method', 'post');
echo $this->form()->openTag($form);
echo $this->formCollection($form);
echo $this->form()->closeTag();
這可能有所幫助,也可能沒有幫助,但至少值得一試...
我知道這有點舊,但是作為參考,這是在Doctrine 2帶注釋的實體中的實體屬性docblock,可用於我呈現固定列表選擇:
/**
* @var string
*
* @ORM\Column(name="layout", type="string", length=45, nullable=true)
* @Annotation\Type("Zend\Form\Element\Select")
* @Annotation\Options({
* "label":"Layout:",
* "value_options":{"":"", "one-page":"One Page", "multi-page":"Multi-page"}
* })
*/
private $layout;
使用最新的ZF 2.3。*。
我也有同樣的問題。 希望僅通過注釋來構建我的“選擇”框。 我認為Hydrator並沒有真正做到這一點(Doctrine 2 ORM v 1,*和ZF2.5)。
只需使用Iterator並使用
實體:
use Doctrine\ORM\Mapping as ORM;
use Zend\Form\Annotation;
/**
* @var \Backend\Entity\Mastercategory
*
* @Annotation\Type("Zend\Form\Element\Select")
* @ORM\ManyToOne(targetEntity="Backend\Entity\Mastercategory")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="sub_pid", referencedColumnName="id")
* })
*/
private $subPid;
控制器:
//mastercategories is my Object EntityClass actually with getter_setter
$arr = new \ArrayIterator($mastercategories);
$masterToArr = array();
while ($arr->valid())
{
$mid = $arr->current()->getId();
$mname = $arr->current()->getMasterName();
$masterToArr[$mid] = $mname;
$arr->next();
}
$form->get('subPid')->setOptions(array('type' => 'select', 'value_options' => $masterToArr));
查看者:
<?php echo $this->formSelect($form->get('subPid')); ?>
我知道用這樣的東西填充Controller並不是一個好主意,但是效果很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.