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。
我正在尝试通过添加新的数据字段来扩展 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。