symfony - Sylius 1.3 - “Sylius\Component\Addressing\Model\X”的类“App\Entity\X”子类不是有效的实体或映射的超类
问题描述
/config/packages/_sylius.yaml 的内容
imports:
- { resource: "@SyliusCoreBundle/Resources/config/app/config.yml" }
- { resource: "@SyliusAdminBundle/Resources/config/app/config.yml" }
- { resource: "@SyliusAdminApiBundle/Resources/config/app/config.yml" }
- { resource: "@SyliusShopBundle/Resources/config/app/config.yml" }
parameters:
sylius_core.public_dir: '%kernel.project_dir%/public'
sylius_shop:
product_grid:
include_all_descendants: true
sylius_theme:
sources:
filesystem:
directories:
- "%kernel.project_dir%/themes"
sylius_addressing:
resources:
country:
classes:
model: App\Entity\Country
/src/Entity/Country.php 的内容
namespace App\Entity;
use Sylius\Component\Addressing\Model\Country as BaseCountry;
class Country extends BaseCountry
{
/**
* @var bool
*/
private $flag;
/**
* @return bool|null
*/
public function getFlag(): ?bool
{
return $this->flag;
}
/**
* @param bool $flag
*/
public function setFlag(bool $flag): void
{
$this->flag = $flag;
}
}
/src/Resources/config/doctrine/Country.orm.yml 的内容
App\Entity\Country:
type: entity
table: sylius_country
fields:
flag:
type: boolean
nullable: true
但是,在运行 Symfony 的模式更新命令时,会显示以下错误消息:
“Sylius\Component\Addressing\Model\Country”的类“App\Entity\Country”子类不是有效的实体或映射的超类。
任何帮助,将不胜感激。先感谢您。
解决方案
您需要像这样映射您的实体。
# config/packages/doctrine.yaml
doctrine:
orm:
mappings:
AppEntity:
type: xml
is_bundle: false
prefix: App\Entity
dir: '%project.dir%/src/Resources/config/doctrine/model'
然后创建您的映射文件,例如。src/Resources/config/doctrine/model/YourEntity.xml
推荐阅读
- vba - 如何根据 VBA 中的预定标准打印字典?
- swift - UICollectionViewCell 的子类 从 XIB 文件初始化的子类
- python - 根据条件在Pandas,Python中编辑计划文件的顺序和内容
- oracle - ubuntu 上的 sqlplus,错误:消息文件 sp1
.msb 未找到 - javascript - Chrome 找不到登录窗口
- snowflake-cloud-data-platform - 使用 SNOWFLAKE 将 Dev 数据库复制到 QA 数据库
- python - 如何从文件格式/结构解析二进制文件?
- pyspark - 如何在不重命名列的情况下计算单行中数据框列的平均值、最大值、最小值
- c# - 复制 Type 对象的简单方法
- python - 如何将ndarray的指定元素转换为具体类型