Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关联实体相关-手工更改_Php_Symfony_Doctrine_Entity - Fatal编程技术网

Php 关联实体相关-手工更改

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

我在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;
}
如果我要更改@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">