【问题标题】:Association entity related - change by hand关联实体相关 - 手动更改
【发布时间】:2017-05-12 15:51:46
【问题描述】:

我在 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() &amp; 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>

【问题讨论】:

    标签: php symfony doctrine entity


    【解决方案1】:

    您需要更改 $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"。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多