3

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

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

我也想要实体日志。这有字段:日志、描述和日期。我想在博客、页面和新闻中添加字段描述:

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

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

4

2 回答 2

5

您可以在奏鸣曲管理员中添加您的字段..

在奏鸣曲管理表单中添加可选文件的正确方法

     $formMapper
        ->with('General')
            ->add('title', null, array('mapped'=>false))
            ->add('body', null, array())
            ->add('description', 'text', array())
        ->end();

在第三个参数中添加'mapped'=>false

于 2013-09-19T09:09:48.067 回答
0

可选字段不应该将“必需”设置为 false

protected function configureFormFields(FormMapper $formMapper){
//
->add('title', 'text', array('mapped'=>false, 'required'=> false))
//
}
于 2014-04-25T17:31:16.297 回答