Sylius 1.3 - подкласс "App \ Entity \ X" класса "Sylius \ Component \ Addressing \ Model \ X" не является допустимым объектом или сопоставленным суперклассом - PullRequest
0 голосов
/ 23 декабря 2018

Содержимое /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 отображается следующее сообщение об ошибке:

Подкласс класса "App \ Entity \ Country" в "Sylius \ Component \ Addressing \ Model \ Country" не является допустимым объектом или сопоставленным суперклассом.

Любая помощь будет оценена.Заранее спасибо.

1 Ответ

0 голосов
/ 24 декабря 2018

Вам необходимо сопоставить вашу сущность следующим образом.

# 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

...