0

我已经设置了一个数据库表,其中 ID 值将由我的应用程序而不是数据库创建。

/**
 * @ORM\Column(type="bigint", precision=14, options={"unsigned":true})
 * @ORM\Id()
 * @ORM\GeneratedValue("NONE")
 */
private $id;

这在 symfony 中运行良好,但我正在尝试使用 EasyAdmin 编辑表格,而 EasyAdmin 只是省略了“id”列。

我发现我可以从 EasyAdmin 文档中操作编辑/新视图配置。

现在我有以下配置(提到id的是 for Product):

easy_admin:
    entities:
        - AppBundle\Entity\Category
        - AppBundle\Entity\Product

问题:

1-如何设置 YAML 配置,以便id字段也会出现?我发现这部分有效:

easy_admin:
    entities:
        Product:
            class: AppBundle\Entity\Product
            form:
                fields:
                    - 'id'

但这仅显示“id”,有没有办法告诉我除了所有其他字段之外我还想要“id”,所以我不必手动列出它们?

2- 我的原始配置在 YAML 文件中使用带有破折号 (-) 的实体列表。我是 YAML 菜鸟,当我制作Product:密钥时,我无法再使用破折号,有没有办法继续使用破折号列表,只是为“产品”设置例外?例如下面的代码不起作用,它说它不是有效的 YAML。

easy_admin:
    entities:
        - AppBundle\Entity\Category
        Product:
            class: AppBundle\Entity\Product
            form:
                fields:
                    - 'id'

好吧,现在我解决了这样的问题并完全放弃了破折号:

easy_admin:
    entities:
        Category:
            class: AppBundle\Entity\Category
        Store:
            class: AppBundle\Entity\Store
        Product:
            class: AppBundle\Entity\Product
            edit:
                fields:
                    - { property: 'stores', label: 'Stores', type_options: { by_reference: false } }
            form:
                fields:
                    - 'id'
                    - 'name'
                    - 'category'
                    - 'stores'
4

1 回答 1

0

Q1:您可以使用基于实体控制器的自定义。请参阅此处的文档:https ://symfony.com/doc/master/bundles/EasyAdminBundle/book/complex-dynamic-backends.html#customization-based-on-entity-controllers

app/config/config.yml
User:
    class: AppBundle\Entity\User
    controller: UserBundle\Controller\Admin\UserController

然后在你的 UserController 中你可以有这样的东西。请注意,您必须在方法签名中使用确切的实体名称:在您的情况下创建User EntityFormBuilder

protected function createUserEntityFormBuilder($entity, $view)
{
    $form = parent::createEntityFormBuilder($entity, $view);

    $form->add('Anyfield', TextType::class, [
        'label' => 'id' // feel free to add other options
    ]); // add fieldlike you would do in FormType
    $form->remove('anyField');

    return $form;
}

Q2:我不能肯定地回答这个问题。我不使用“虚线”表示法。也许看看这里的文档:https ://symfony.com/doc/current/components/yaml/yaml_format.html#collections

于 2017-11-13T02:37:19.043 回答