首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将自己的字段添加到Admin Sonata

将自己的字段添加到Admin Sonata
EN

Stack Overflow用户
提问于 2013-09-18 05:29:26
回答 2查看 5K关注 0票数 3

我想为许多实体做日志系统。例如,我有实体:博客,页面和新闻。它们是admin类:

代码语言:javascript
运行
复制
class (Blog|Page|News/)Admin.php
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->with('General')
                ->add('title', null, array())
                ->add('body', null, array())
            ->end();
    }
}

我也想要实体日志。它有三个字段:日志、描述和日期。我想添加字段描述到博客,页面和新闻:

代码语言:javascript
运行
复制
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将此数据保存到表日志中,但我不知道如何将实体日志中的字段描述添加到这些实体中。我也可以建立关系,但这也是错误的方式。也许我应该使用扩展类?但是怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2013-09-19 17:09:48

您可以在sonata管理中添加您的字段。

在sonata管理表单中添加可选字段是正确的方法

代码语言:javascript
运行
复制
     $formMapper
        ->with('General')
            ->add('title', null, array('mapped'=>false))
            ->add('body', null, array())
            ->add('description', 'text', array())
        ->end();

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

票数 5
EN

Stack Overflow用户

发布于 2014-04-26 01:31:16

不应该将可选字段的'required‘设置为false

代码语言:javascript
运行
复制
protected function configureFormFields(FormMapper $formMapper){
//
->add('title', 'text', array('mapped'=>false, 'required'=> false))
//
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18860223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档