2016-11-26 34 views
0

我想覆盖SyliusCoreBundle的shop_user模型,我遵循instructions,但有2个问题。Sylius Overriding ShopUser模型

  1. 在学说配置文件,当我使用“sylius_shop_user”作为表名, 它说,该表已经存在。 The table with name 'sylius_dev.sylius_shop_user' already exists.

  2. ,当我要重写shop_user模型的课,我得到这个错误:Unrecognized option "shop_user" under "sylius_core.resources"

回答

2

这里是我的1.0.0-alpha.1 :)

sylius_user: 
    resources: 
     shop: 
      user: 
       classes: 
        model: AppBundle\Entity\ShopUser 
        repository: AppBundle\Entity\Repository\ShopUserRepository 
        form: 
         default: AppBundle\Form\Type\Api\UserType 

sylius_resource: 
    resources: 
     app.shop_user: 
      classes: 
       model: AppBundle\Entity\ShopUser 
       repository: AppBundle\Entity\Repository\ShopUserRepository 
       controller: AppBundle\Controller\Api\UserController 

sylius_api: 
    resources: 
     api_user: 
      classes: 
       model: "%sylius.model.shop_user.class%" 

doctrine: 
    orm: 
     resolve_target_entities: 
      AppBundle\Entity\ShopUserInterface: AppBundle\Entity\ShopUser 

配置ShopUser.php

namespace AppBundle\Entity; 

use Sylius\Component\Core\Model\ShopUser as BaseShopUser; 

class ShopUser extends BaseShopUser implements ShopUserInterface {...} 

ShopUserInterface.php

namespace AppBundle\Entity; 

use Doctrine\Common\Collections\ArrayCollection; 
use Sylius\Component\Core\Model\ShopUserInterface as BaseShopUserInterface; 

interface ShopUserInterface extends BaseShopUserInterface {...} 

ShopUserRepository.php

namespace AppBundle\Entity\Repository; 

use Sylius\Bundle\CoreBundle\Doctrine\ORM\UserRepository as BaseUserRepository; 

class ShopUserRepository extends BaseUserRepository implements ShopUserRepositoryInterface {...} 

ShopUserRepositoryInterface.php

namespace AppBundle\Entity\Repository; 

use Sylius\Component\User\Repository\UserRepositoryInterface; 

interface ShopUserRepositoryInterface extends UserRepositoryInterface {...} 

/src/AppBundle/Resources/config/doctrine/ShopUser.orm.xml

<?xml version="1.0" encoding="UTF-8"?> 

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping 
              http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> 

    <entity name="AppBundle\Entity\ShopUser" table="sylius_shop_user" repository-class="AppBundle\Entity\Repository\ShopUserRepository"> 
     ... 
    </entity> 

</doctrine-mapping> 

SRC /的appbundle /资源/配置/秒Erializer/Entity.ShopUser.yml

AppBundle\Entity\ShopUser: 
    exclusion_policy: ALL