SonataAdmin挂钩没有开火

时间:2016-04-04 14:35:38

标签: symfony sonata-admin

我有Symfony 2.8。我使用SonataAdminBundle v2.3 + a2lix / TranslationFormBundle v2.1 + SonataMediaBundle v2.3。我有NewsAdmin课程:

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');
    }
} 

问题是,postUpdateprePersist方法也没有触发,因此我无法在网络分析器字符串中看到' preUpdate'或者' prePersist'。为什么会这样?以及如何解决这个问题?

P.S。如果您需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

只需添加die,您就会看到dump

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

修改

这是因为dump不会直接从呈现视图的控制器操作调用,也不是从操作调用的方法调用,而是在完全独立的EventListener中调用。