2016-04-04 23 views
1

Symfony 2.8 var. SonataAdminBundle v2.3 + a2lix/TranslationFormBundle v2.1 + SonataMediaBundle v2.3 kullanıyorum. Ben NewsAdmin sınıf var:SonataAdmin kancaları yanmıyor

class NewsAdmin extends Admin 
{ 
    protected function configureFormFields(FormMapper $formMapper) 
    { 
     $formMapper 
      ->add('translations', 'a2lix_translations', ['fields' => [ 
       'content' => [ 
        'field_type' => 'ckeditor', 
       ] 
      ]]) 
      ->add('excerptImage', 'sonata_type_model_list', [], [ 
       'link_parameters' => ['context' => 'default'], 
       'require' => false 
      ]) 
      ->add('excerptImageSide') 
      ->add('category', 'sonata_type_model', [ 
       'class' => 'AppBundle\Entity\NewsCategory', 
       'property' => 'shortName' 
      ]) 
     ; 
    } 

    // configureDatagridFilters(), configureListFields() ... 

    // Does not firing! 
    public function postUpdate($news) 
    { 
     dump('preUpdate'); 
    } 

    // Does not firing! 
    public function prePersist($news) 
    { 
     dump('prePersist'); 
    } 
} 

sorun olduğunu ne de postUpdate, ne de prePersist yöntemleri ateş edilmez, bu yüzden web profilci dizesinde 'preUpdate' veya 'prePersist' görmüyorum. Neden böyle oluyor? Ve bunu nasıl düzeltebilirim?

P.S. Daha fazla bilgiye ihtiyacınız varsa lütfen bana bildirin.

cevap

2

Sadece bir die ekleyin ve dump numaranızı göreceksiniz.

public function prePersist($news) 
{ 
    dump('prePersist'); 
    die; 
} 

DÜZENLEMEdump olmayan görünüm oluşturur kontrol eylemi tarafından doğrudan adlandırılır çünkü, ne de hareketiyle adı verilen bir yöntemi, ama tamamen bağımsız olan bir EventListener içinde

.

+0

Teşekkürler, şimdi çalışıyor! Ama lütfen bana sözlerini onaylayan herhangi bir link verebilir misin? Çünkü, örneğin kodda: '$ foo = [1, 2, 3, 4]; print_r ($ foo); ($ i = 0; $ i <300; $ i ++) {} 'print_r 'sonucunu görüyorum. – Molarro

+0

Cevabımı güncelledim, sözlerim tamamen kötü seçilmişti. – chalasr