Sylius:如何扩展 Taxon 模型?

Sylius: How to extend Taxon model?

我正在尝试通过添加新的数据字段来扩展 Sylius\Component\Core\Model\Taxon。同样的程序在 Sylius Core 之外的另一个模型上确实有效。当运行doctrine:migrations:diff时,报错信息为"The table with name 'sylius_dev.sylius_taxon' already exists."

php bin/console debug:container --parameter=sylius.model.taxon.class 的响应根本没有改变。

这是我在 /src/AppBundle/Entity/FooTaxon.php 中的新 class:

<?php

namespace AppBundle\Entity;

use Sylius\Component\Core\Model\Taxon as BaseTaxon;

class FooTaxon extends BaseTaxon
{
    /**
     * @var string
     */
    private $field_one;

    /**
     * @return string
     */
    public function getFieldOne(): string
    {
        return $this->field_one;
    }

    /**
     * @param string $new_value
     */
    public function setFieldOne(string $new_value): void
    {
        $this->field_one = $new_value;
    }



    /**
     * @var int
     */
    private $field_two;

    /**
     * @return int
     */
    public function getFieldTwo(): int
    {
        return $this->field_two;
    }

    /**
     * @param int $new_value
     */
    public function setFieldTwo(int $new_value): void
    {
        $this->field_two = $new_value;
    }

}

这是我的 /src/AppBundle/Resources/config/doctrine/FooTaxon.orm.yml:

AppBundle\Entity\FooTaxon:
    type: entity
    table: sylius_taxon
    fields:
        field_one:
            type: string
            nullable: false
        field_two:
            type: integer
            nullable: false

这是 /app/config/config.yml 中的新条目:

sylius_core:
    resources:
        product_taxon:
            classes:
                model: AppBundle\Entity\FooTaxon

任何帮助将不胜感激,因为我是 Symfony 和 Sylius 的新手。

你应该使用这个而不是 sylius_core 节点:

sylius_taxonomy:
    resources:
        taxon:
            classes:
                model: AppBundle\Entity\FooTaxon

最好在实体 属性 名称中使用大写而不是 snake_case。