2017-05-12 1 views
1

Ich habe eine Entität in AppBundle/Entity, die ich mir aus der Datenbank generiert.Assoziation Entität bezogen - Handwechsel

<?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; 
} 

Jetzt möchte ich die setUser() & getUser() ändern:

Sylius\Component\Core\Model\ShopUser 

Wenn ich werde @parm und der Wert in Klammern ändern, zB:

public function setUser(\Sylius\Component\Core\Model\ShopUser $user = null) 

ich den Fehler:

Erwarteter Wert des Typs "AppBundle \ Entity \ SyliusShopUser" für das Verknüpfungsfeld "AppBundle \ Entity \ ExtensionSyliusShopUser # $ user ", stattdessen" Sylius \ Component \ Core \ Model \ ShopUser ".

Wie kann ich es ändern?

<?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> 

Antwort

1

Sie müssen die Definition Ihrer $ user -Eigenschaft (Spalte) ändern. was in einem von Ihnen bereitgestellten Codebeispiel nicht angezeigt wird.

Falls Sie Anmerkungen verwenden sollte wie folgt aussehen:

/** 
* @ORM\ManyToOne(targetEntity="Sylius\Component\Core\Model\ShopUser") 
*/ 
private $user; 

Bei XML config:

<many-to-one field="user" target-entity="Sylius\Component\Core\Model\ShopUser"> 
+0

Diese leider nicht funktioniert. – craphunter

+1

Wo haben Sie Ihre Mapping-Definition? – kormik

+0

Okay, danke für den Hinweis! Es funktioniert. Ich habe vergessen, die target-entity = "SyliusShopUser" auf target-entity = "Syliusy \ ... \ SyliusShopUser" zu setzen. – craphunter