エンティティ\Profile.php
class Profile
{
...
/**
* @var string
*
* @ORM\Column(name="country", type="string", length=100, nullable=true)
*/
private $country;
/**
* @var string
*
* @ORM\Column(name="province", type="string", length=100, nullable=true)
*/
private $province;
...
}
MyProfileTypeForm.php:
public function buildForm(FormBuilderInterface $builder, array $options)
{
...
->add('country', CountryType::class, array(
'label' => 'form.profile.country',
'preferred_choices' => array(
'US'
)
))
...
$builder->addEventListener(FormEvents::POST_SET_DATA, function(FormEvent $event) {
$form = $event->getForm();
$country = $form->get('country')->getData();
$form->add('province', EntityType::class, array(
'class' => 'UserBundle:LocationProvince',
'choice_label' => 'name',
'choice_value' => 'id',
'query_builder' => function (EntityRepository $er) use ($country) {
return $er
->createQueryBuilder('l')
->where('l.countryCode = :cc')
->setParameter(':cc', $country);
},
'label' => 'form.profile.province',
));
});
}
エラーコード:
「UPDATE プロファイル SET 州 = ?」の実行中に例外が発生しました。WHERE id = ?' パラメータ付き [{}, 1]:
Catchable Fatal Error: クラス Panel\UserBundle\Entity\LocationProvince のオブジェクトを文字列に変換できませんでした
説明:
国コードを取得するエンティティ。国コードによって描かれた地方のリスト。しかし、それは記録されません。