php - 为 Admin Sonata 添加自己的字段

标签 php symfony doctrine-orm sonata-admin symfony-sonata

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

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

最佳答案

您可以在 sonata admin 中添加您的字段..

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

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

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

关于php - 为 Admin Sonata 添加自己的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860223/

相关文章:

php - 如何在php中打印具有特定行和列格式的表格?

PHP Require 导致错误 500...只是有时。这是什么错误?

Symfony 4 和 Doctrine,如何在映射后自动生成存储库?

php - 在 Twig 模板中嵌入表单 Controller : can't redirect in embedded controller after submit

php - 学说 2 选择计数 groupBy

php - Doctrine2 更新导致 Zend Framework 3 中 AnnotationRegistry registerLoader 错误

javascript - 从 javascript 接收字符串时 phpexplode() 不起作用

php - 安装 symfony 项目时“类 Doctrine\Common\Cache\ArrayCache 不存在”

Symfony+JMS Serializer反序列化为现有对象

doctrine-orm - 如何在 Silex 中生成实体并更新数据库架构