Php 关联实体相关-手工更改
我在AppBundle/entity中确实有一个从数据库生成的实体Php 关联实体相关-手工更改,php,symfony,doctrine,entity,Php,Symfony,Doctrine,Entity,我在AppBundle/entity中确实有一个从数据库生成的实体 <?php namespace AppBundle\Entity; /* * * ExtensionSyliusShopUser */ class ExtensionSyliusShopUser {/** * Set user * * @param \AppBundle\Entity\SyliusShopUser $user * * @return ExtensionSyliusShopUser
<?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;
}
如果我要更改@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">
映射定义在哪里?好的,谢谢您的提示!它正在工作。我忘记将target entity=“SyliusShopUser”设置为target entity=“Syliusy\…\SyliusShopUser”。
<many-to-one field="user" target-entity="Sylius\Component\Core\Model\ShopUser">