1

我目前正在开发一个 OroPlatform 项目,我需要在BusinessUnit核心实体上添加一个自定义字段。

我已阅读有关扩展核心实体的方式的 Oro 文档部分:https ://doc.oroinc.com/backend/entities/extend-entities/#id1

<?php
namespace MyBundle\Bundle\AppBundle\Migrations\Schema\v1_0;

use Doctrine\DBAL\Schema\Schema;
use Oro\Bundle\EntityExtendBundle\EntityConfig\ExtendScope;
use Oro\Bundle\MigrationBundle\Migration\Migration;
use Oro\Bundle\MigrationBundle\Migration\QueryBag;

class AddColumnsToBusinessUnit implements Migration
{
    public function up(Schema $schema, QueryBag $queries)
    {
        $table = $schema->getTable('oro_business_unit');
        $table->addColumn('siret', 'string', [
            'oro_options' => [
                'extend' => ['owner' => ExtendScope::OWNER_CUSTOM],
                'entity' => ['label' => 'siret'],
            ],
        ]);
    }
}

当我运行命令symfony console oro:migration:load --force时,它可以工作,并且迁移将应用于我的数据库。

现在,我想要一个必填字段。我已经看到了'notnull' => true在数据库上设置不可为空字段的说明。

organization/business_unit/create一切正常,但我的领域在路线上没有任何 JavaScript 验证。有任何想法吗 ?

4

1 回答 1

2

您可以通过扩展已为您正在扩展的核心实体定义的验证元数据来验证新字段。

为此,请遵循 Symfony 官方文档并使用 YML 格式: https ://symfony.com/doc/4.4/validation.html#constraint-configuration

可用于该字段的约束是“非空白”。

这是一个例子:

# src/<YourBundlePath>/Resources/config/validation.yml
Oro\Bundle\OrganizationBundle\Entity\BusinessUnit:
    properties:
        siret:
            - NotBlank: ~
于 2020-12-07T15:16:32.327 回答