私は2つのエンティティを持っています連絡先と都市はユーザーが郵便番号を入力したときにコンボボックスが自動的にスクリプトajax順調です。SYMFONY 3 formType validation with choiceType "この値は無効です"
データベースに追加するときに、私はこのエラー 'この値は無効です。
class Contact
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="content", type="string", length=255, nullable=false)
*/
private $content;
/**
* @var string
*
* @ORM\Column(name="ville", type="string", length=255, nullable=false)
*/
private $ville;
/**
* @var string
*
* @ORM\Column(name="pays", type="string", length=255, nullable=false)
*/
private $pays;
ContactType:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('content',null,array('attr'=>array('class'=>'cp','maxenght'=>5)))
->add('ville',ChoiceType::class,array('attr'=>array('class'=>'ville',
)))
->add('pays',null,array('attr'=>array('class'=>'pays')))
->add('save', SubmitType::class)
;
}
VilleAction:あなたはプロファイラで何かを提出
public function villesAction(Request $request, $cp){
if ($request->isXmlHttpRequest()){
$em = $this->getDoctrine()->getManager();
$villeCodePostal = $em->getRepository('JTCUserBundle:Villes')-
>findBy(array('villeCodePostal'=>$cp));
if ($villeCodePostal){
$villes = array();
$pays = array();
foreach ($villeCodePostal as $ville){
$villes[] = $ville->getVilleNom();
$pays[]=$ville->getVilleDepartement();
}
// $ville=$villeCodePostal->getVilleNom();
// $pays=$villeCodePostal->getVilleDepartement();
}else{
$ville=null ;
// $pays=null ;
}
$response = new JsonResponse();
return $response->setData(array('ville'=>$villes, 'pays'=>$pays));//, 'pays'=>$pays));
}
}
なぜVilleはChoiceTypeですか?このタイプにはいくつかの選択肢が必要です。(私は考える)Symfonyはフォームフィールドの値が選択肢の1つであることを確認します。それを通常のTextTypeフィールドに変更できませんか? –
はい、私はあなたがいくつかの選択肢が必要と思う、多分いくつかのダミーデータを試して、あなたのjsonの応答と置き換えますか? –
こんにちは、私はあなたの答えに感謝します。 例:郵便番号を入力すると、この郵便番号にいくつかの都市が表示されるため、ChoiceTypeの都市フィールドを入力する必要があります。 –