关联实体相关-手动更改
Association entity related - change by hand
我在 AppBundle/Entity 中确实有一个实体,它是我从数据库中生成的。
<?php
namespace AppBundle\Entity;
/*
*
* ExtensionSyliusShopUser
*/
class ExtensionSyliusShopUser
{/**
* Set user
*
* @param \AppBundle\Entity\SyliusShopUser $user
*
* @return ExtensionSyliusShopUser
*/
public function setUser(\AppBundle\Entity\SyliusShopUser $user = null)
{
$this->user = $user;
return $this;
}
/**
* Get user
*
* @return \AppBundle\Entity\SyliusShopUser
*/
public function getUser()
{
return $this->user;
}
现在我想将 setUser() & getUser()
更改为:
Sylius\Component\Core\Model\ShopUser
如果我要更改@parm 和大括号中的值,例如:
public function setUser(\Sylius\Component\Core\Model\ShopUser $user = null)
我收到错误:
关联字段 "AppBundle\Entity\ExtensionSyliusShopUser#$user" 类型 "AppBundle\Entity\SyliusShopUser" 的期望值,得到的是 "Sylius\Component\Core\Model\ShopUser"。
如何更改?
<?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\ExtensionSyliusShopUser" table="extension_sylius_shop_user">
<indexes>
<index name="user_id" columns="user_id"/>
</indexes>
<id name="id" type="integer" column="id">
<generator strategy="IDENTITY"/>
</id>
<field name="wishlist" type="text" column="wishlist" length="65535" nullable="true">
<options>
<option name="fixed"/>
</options>
</field>
<many-to-one field="user" target-entity="SyliusShopUser" fetch="LAZY">
<join-columns>
<join-column name="user_id" referenced-column-name="id"/>
</join-columns>
</many-to-one>
</entity>
</doctrine-mapping>
您需要更改 $user 属性(列)的定义。您提供的代码示例中未显示。
如果你使用注解应该是这样的:
/**
* @ORM\ManyToOne(targetEntity="Sylius\Component\Core\Model\ShopUser")
*/
private $user;
如果是 XML 配置:
<many-to-one field="user" target-entity="Sylius\Component\Core\Model\ShopUser">
我在 AppBundle/Entity 中确实有一个实体,它是我从数据库中生成的。
<?php
namespace AppBundle\Entity;
/*
*
* ExtensionSyliusShopUser
*/
class ExtensionSyliusShopUser
{/**
* Set user
*
* @param \AppBundle\Entity\SyliusShopUser $user
*
* @return ExtensionSyliusShopUser
*/
public function setUser(\AppBundle\Entity\SyliusShopUser $user = null)
{
$this->user = $user;
return $this;
}
/**
* Get user
*
* @return \AppBundle\Entity\SyliusShopUser
*/
public function getUser()
{
return $this->user;
}
现在我想将 setUser() & getUser()
更改为:
Sylius\Component\Core\Model\ShopUser
如果我要更改@parm 和大括号中的值,例如:
public function setUser(\Sylius\Component\Core\Model\ShopUser $user = null)
我收到错误:
关联字段 "AppBundle\Entity\ExtensionSyliusShopUser#$user" 类型 "AppBundle\Entity\SyliusShopUser" 的期望值,得到的是 "Sylius\Component\Core\Model\ShopUser"。
如何更改?
<?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\ExtensionSyliusShopUser" table="extension_sylius_shop_user">
<indexes>
<index name="user_id" columns="user_id"/>
</indexes>
<id name="id" type="integer" column="id">
<generator strategy="IDENTITY"/>
</id>
<field name="wishlist" type="text" column="wishlist" length="65535" nullable="true">
<options>
<option name="fixed"/>
</options>
</field>
<many-to-one field="user" target-entity="SyliusShopUser" fetch="LAZY">
<join-columns>
<join-column name="user_id" referenced-column-name="id"/>
</join-columns>
</many-to-one>
</entity>
</doctrine-mapping>
您需要更改 $user 属性(列)的定义。您提供的代码示例中未显示。
如果你使用注解应该是这样的:
/**
* @ORM\ManyToOne(targetEntity="Sylius\Component\Core\Model\ShopUser")
*/
private $user;
如果是 XML 配置:
<many-to-one field="user" target-entity="Sylius\Component\Core\Model\ShopUser">