2017-01-24 15 views
2

場所フィールドを持つフォームがあります。ドロップダウンのあるChoiceTypeクラスを作成し、オプションのためにconfig.yml内のすべての場所をパラメータとして定義しました。コントローラで配列パラメータを取得して、それをtwigに送信してフォームに表示する方法

config.yml:

parameters: 
    locations:[location1, location2, location3] 

コントローラフォームフィールド:

$form = $this->createFormBuilder($abc) 
    ->add('location', ChoiceType::class, array(
     'label' => 'Select Location', 
     'choices'=> $this->getParameter('locations'), 
    )) 
    ->getForm(); 

これが表示されているアレイ位置、すなわちLOCATION1ため0、LOCATION2などのため1、しかし、私は配列の値を表示します。

私はこのパラメータを配列に配置してから、array_valueオプションを試してみました。

$arrayincontroller=$this->getParameter('locations') 

とフォームで:

->add('location', ChoiceType:class, array('label' => 'Select Location', 'choices'=> array($arrayincontroller[0] => $arrayincontroller[0]) 

しかし、このような一人ひとりの場所を書きたくない私はして場所を表示するようになりました。値を渡すより良い方法はありますか? foreachを含めることを試みたが、私はそれをすることはできないと思う。

答えて

1

あなたは次のように配列としてパラメータを定義することができます

parameters: 
    locations: 
     location1: location1 
     location2: location2 
     location3: location3 

は、常に取得します。

$arrayincontroller=$this->getParameter('locations') 

しかし、次のように使用します。

->add('location', ChoiceType:class, array('label' => 'Select Location', 'choices'=> $arrayincontroller); 

・ホープ、このヘルプ

+0

ありがとう、それは働いた –

+1

add( 'location'、ChoiceType:class、array( 'label' => '場所の選択'、 'choices' => $ this-> getParameter( 'locations'); –

+0

こんにちは@HarshulRはいいいえ問題は直接あなたがコメントしている – Matteo

関連する問題