2014-06-11 7 views
13

मेरे पास यह कक्षा Zgh\FEBundle\Entity\User है जो FOS\UserBundle\Model\User फैली हुई है।लक्षण - मूल वर्ग के साथ संपत्ति संघर्ष

use FOS\UserBundle\Model\User as BaseUser; 

class User extends BaseUser implements ParticipantInterface 
{ 
    use BasicInfo; 
    // .. 
} 

और BaseUser वर्ग:

abstract class User implements UserInterface, GroupableInterface 
{ 
    protected $id; 
    // .. 
} 

और BaseInfo विशेषता:

trait BasicInfo 
{ 
    /** 
    * @ORM\Column(type="string", length=255) 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="NONE") 
    */ 
    protected $id; 

    // .. 
} 

लेकिन जब मैं अपने कोड को चलाने मैं इस त्रुटि मिलती है:

Strict standards: FOS\UserBundle\Model\User and Zgh\FEBundle\Model\Partial\BasicInfo define the same property ($id) in the composition of Zgh\FEBundle\Entity\User. This might be incompatible, consider using accessor methods in traits instead.

मैं सिम्फनी फ्रैंक का उपयोग करना amework।

क्या इस संपत्ति के बारे में विशेषता और अभिभावक वर्ग वस्तु के बीच इस संघर्ष को हल करने के लिए वैसे भी है?

+0

और सवाल यह है .... – marekful

+0

@ MarcellFülöp मैंने प्रश्न अपडेट किया है। धन्यवाद। –

उत्तर

1

नहीं, एक विशेषता का उपयोग कर मैप किए गए संपत्ति को फिर से लिखना अभी तक संभव नहीं है।

इसके अलावा, एक संभावित विकल्प कई अमूर्त इकाई वर्गों का उपयोग करना है, और अपनी आवश्यकता के आधार पर अपने बच्चे की इकाइयों का विस्तार करना है।

अर्थात

<?php 

use FOS\UserBundle\Model\User as BaseUser; 

abstract class AbstractStrategyNoneEntity extends BaseUser 
{ 
    /** 
    * @ORM\Column(type="string", length=255) 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="NONE") 
    */ 
    protected $id; 
} 

abstract class AbstractStrategyAutoEntity extends BaseUser 
{ 
    /** 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    * 
    */ 
    protected $id; 
} 

और अपने बच्चे को सत्ता के बारे में उनमें से एक का विस्तार।

/** 
* @ORM\Entity 
*/ 
class Child extends AbstractStrategyNoneEntity 
{ 
    // Inherited mapping 
} 

उम्मीद है कि यह आपके प्रश्न का उत्तर देगा।

संबंधित मुद्दे