我想为许多实体制作日志系统。例如,我有实体:博客,页面和新闻。他们是管理员类:
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();
}
}
但是这个返回错误 - 实体(Blog | Page | News)中不存在此字段。我可以向实体添加setDescription,getDescription等,但这是错误的方式,如果我有很多实体进行日志记录,我将所有日志都放在一个表(实体日志)中,而不是在所有实体中 - (博客|页|新闻) 。我使用preUpdate将此数据保存到表Log,但我不知道如何将实体日志中的字段描述添加到这些实体。我也可以建立关系,但这也是错误的方式。 也许我应该使用扩展类?但是如何?
答案 0 :(得分:5)
您可以在奏鸣曲管理员中添加您的字段..
这是在奏鸣曲管理表单中添加可选字段的正确方法
$formMapper
->with('General')
->add('title', null, array('mapped'=>false))
->add('body', null, array())
->add('description', 'text', array())
->end();
在第三个参数
中添加'mapped'=> false答案 1 :(得分:0)
不应该有可选字段需要'设为假
protected function configureFormFields(FormMapper $formMapper){
//
->add('title', 'text', array('mapped'=>false, 'required'=> false))
//
}