我有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');
}
}
问题是,postUpdate
和prePersist
方法也没有触发,因此我无法在网络分析器字符串中看到' preUpdate'或者' prePersist'。为什么会这样?以及如何解决这个问题?
P.S。如果您需要更多信息,请告诉我。
答案 0 :(得分:2)
只需添加die
,您就会看到dump
。
public function prePersist($news)
{
dump('prePersist');
die;
}
修改强>
这是因为dump
不会直接从呈现视图的控制器操作调用,也不是从操作调用的方法调用,而是在完全独立的EventListener中调用。