2013-06-27 41 views
28

Tôi đang cố gắng lấy thực thể bên trong biểu mẫu của riêng mình. Tôi lười biếng nhớ một phương thức getData(), nhưng nó không tồn tại bên trong biểu mẫu, và tôi không thể nhớ cách sử dụng nó.Cách truy cập thực thể bên trong phương thức buildForm của một biểu mẫu

Có cách nào để đưa thực thể bên trong phương thức xây dựng không sử dụng trình xử lý sự kiện không?

Ý tôi là, một cái gì đó như thế này:

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     /*some method to get the entity of the form such as getEntity????????*/ 
     $builder->add('field'); 
    } 

Trả lời

54

tôi tìm thấy nó:

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $entity = $builder->getData(); 
     $builder->add('field'); 
    } 
+22

Xin lưu ý rằng nếu bạn đang sử dụng loại trong bộ sưu tập bạn cần phải sử dụng các sự kiện dạng $ builder- > addEventListener (FormEvents :: PRE_SET_DATA, hàm (sự kiện FormEvent $) sử dụng ($ builder) { /** @var YourEntity $ data */ $ data = $ event-> getData(); }); – nvvetal

Các vấn đề liên quan