小编mar*_*uis的帖子

将自己的字段添加到Admin Sonata

我想为许多实体制作日志系统.例如,我有实体:博客,页面和新闻.他们是管理员类:

class (Blog|Page|News/)Admin.php
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->with('General')
                ->add('title', null, array())
                ->add('body', null, array())
            ->end();
    }
}
Run Code Online (Sandbox Code Playgroud)

我也想实体日志.这有字段:日志,描述和日期.我想在Blog,Page和News中添加字段描述:

class (Blog|Page|News)Admin.php
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->with('General')
                ->add('title', null, array())
                ->add('body', null, array())
                ->add('description', 'text', array())
            ->end();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这个返回错误 - 实体(Blog | Page | News)中不存在此字段.我可以向实体添加setDescription,getDescription等,但这是错误的方式,如果我有很多实体来记录,我将所有日志放在一个表(实体日志),而不是在所有实体 - (博客|页|新闻) .我使用preUpdate将此数据保存到表Log,但我不知道如何将实体日志中的字段描述添加到这些实体.我也可以建立关系,但这也是错误的方式.也许我应该使用扩展类?但是怎么样?

php symfony doctrine-orm symfony-sonata sonata-admin

3
推荐指数
1
解决办法
4895
查看次数