Tôi có mối quan hệ thực thể sau:giá trị qua Symfony2 để loại biểu mẫu thu thập
- Một khách hàng có địa chỉ một nhiều để
- An Địa chỉ có nhiều-to-one County và nhiều-to-one Thành phố
- Quận có thành phố một-nhiều.
Vì vậy, trong CustomerType tôi, tôi có
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
...
->add('addresss', 'collection', array(
'label' => 'customer.address',
'type' => new AddressType(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
))
;
}
Và trong AddressType tôi, tôi có
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
...
->add('city', 'entity', array(
'class' => 'MyCustomerBundle:City',
'query_builder' => function(CityRepository $cr) use ($options) {
return $cr->getCityQB($options['county']);
},
'property' => 'city',
'empty_value' => '',
))
;
}
Mục tiêu của tôi là để chỉ hiển thị các thiết lập của thành phố cho các quận tương ứng của họ. Tôi có thể nhận được các giá trị vào CustomerType từ $ tùy chọn nhưng làm thế nào tôi có thể vượt qua các giá trị để AddressType? Vì vậy, mỗi địa chỉ nhận được quận tương ứng của nó để tìm kiếm các thành phố?
Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn!
Giải pháp này bị phản đối trong Symfony 2.7 và không thể thực hiện được ở 3.0. Bạn không thể chuyển các tham số trong Class formType ngay bây giờ, nhưng bạn có thể làm điều đó bằng cách chèn phần tử nex trong $ options: http://stackoverflow.com/a/34035653/1338420 –