フォームに「エンティティ」タイプのフィールドを表示し、コントローラから渡す引数に基づいてこのエンティティタイプをフィルタリングしたい場合、どうすればいいですか?コントローラからタイプsymfony2にデータを渡します
//PlumeOptionsType.php
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('framePlume', 'entity', array(
'class' => 'DessinPlumeBundle:PhysicalPlume',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('pp')
->where("pp.profile = :profile")
->orderBy('pp.index', 'ASC')
->setParameter('profile', ????)
;
},
));
}
public function getName()
{
return 'plumeOptions';
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Dessin\PlumeBundle\Entity\PlumeOptions',
'csrf_protection' => true,
'csrf_field_name' => '_token',
// a unique key to help generate the secret token
'intention' => 'plumeOptions_item',
);
}
}
とコントローラの内部で、私はフォームを作成:
i have that argument that i need to pass in my action code:
$profile_id = $this->getRequest()->getSession()->get('profile_id');
...
and then i create my form like this
$form = $this->createForm(new PlumeOptionsType(), $plumeOptions);
$ plumeOptionsが持続するだけのクラスです。しかし、それはPhysicalPlumeと呼ばれる別のクラスとの1対1の関係を持っています。今、私は私のコードで 'framePlume'を表示するには、私はフィルタリングされたPhysicalPlumeエンティティを表示したい。
は既に回答済み... チェックhttp://stackoverflow.com/questions/6716776/symfony-2-how-to-pass-data-to-for mbuilder – xeon