Thứ Tư, 6 tháng 6, 2012

[Symfony2] Chi tiết luồng xử lý form

There are two types of events:
DataEvent - read-only access to the form data. 'Pre' and 'Post' events are read-only.
FilterDataEvent - event that allows the form data to be modified.
form.pre_bind DataEvent triggered before data is bound to the form. Triggered by Symfony\Component\Form\Form::bind()
form.post_bind DataEvent triggered after data is bound to the form. Triggered by Symfony\Component\Form\Form::bind()
form.pre_set_data DataEvent triggered before fields are filled with default data. Triggered by Symfony\Component\Form\Form::setData()
form.post_set_data DataEvent triggered after fields are filled with default data. Triggered by Symfony\Component\Form\Form::setData()
form.bind_client_data FilterDataEvent triggered before data is bound to the form. Triggered by Symfony\Component\Form\Form::bind()
form.bind_norm_data FilterDataEvent triggered after data has been normalized. Triggered by Symfony\Component\Form\Form::bind(). See Symfony\Component\Form\Extension\Core\EventListener\FixUrlProtocolListener (added by the UrlType for an example)
form.set_data FilterDataEvent triggered while default data is being bound. Triggered by Symfony\Component\Form\Form::setData()
I'd recommend poking around the Form class itself to get a better feel for when these events are triggered, and how you can use them.

Thứ Ba, 5 tháng 6, 2012

[Symfony2] Lỗi khi dùng Sonata Admin với Oracle

Lỗi không hiểu ngày tháng:
1. Chỉnh sửa Session của Oracle (có thể ko cần)
ALTER SESSION set NLS_DATE_FORMAT = "YYYY-MM-DD HH24:MI:SS";
2. Thêm vào cấu hình config.yml:
services:
   my.listener:
      class: Doctrine\DBAL\Event\Listeners\OracleSessionInit
      tags:
          - { name: doctrine.event_listener, event: postConnect }
3. Lỗi set null ID: bổ sung trigger cho Oracle