エンティティがあり、配列タイプ属性があります:productKey.I productKeysを表示するためにフォームに選択肢を追加しようとしました。コードを書きました:Symfony2の選択フォームフィールドに配列をリストする方法
1.myのにformType:
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('heading','text',array('label'=>'title'))
->add('productKey','choice',array(
'required'=>TRUE,
'label'=>'choose your product',
));
}
2.In私の製品のエンティティはProductKeyをが定義されています:
/**
* @var array $productKey
*
* @ORM\Column(name="productKey", type="array",nullable=true)
*/
private $productKey;
3.In私のコントローラ:
$entity = new Product();
$productKey = array("1"=>"one","2"=>"two","3"=>"three");
$entity ->setProductKey($productKey);
$formType = new TicketType($productKey);
$form = $this->createForm($formType,$entity);
return array(
'form'=>$form->createView(),
'entity'=>$entity
);
私のプロジェクトを実行すると、productKeyの値を表示することはできません!それはちょうど空の選択チース入力に見えます。 は、どのように私はそれを解決できますか?
しかし、私が渡したい配列は、サービス内の関数を介して渡されます。この関数はコントローラ内で呼び出されなければなりません。このように: 'code' $ productKey = $ this-> get( 'someservice') - > getProductKey ($ entity); 'code' formTypeクラスで配列を取得する方法はありますか? – Gina
私はいくつかの他のオプションで私の答えを更新しました。 –
ありがとうございます。私は質問を解決するために簡単な方法を使用しました。私はformTypeクラスに構造関数を追加し、FormTypeを新しいものにすると、配列が渡されます。 – Gina