Hvordan bruke "klasse bordet arv" i Lære to med XML mapping

stemmer
1

Jeg prøver å bruke klasse bordet arv funksjonen Lære to med XML Mapping (Symfony 2 PR 7).

XML definisjonen av XML superproduct:

<?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://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd>
    <entity name=MyApp\CatalogBundle\Entity\CatalogProduct table=catalog_product inheritance-type=JOINED>
        <discriminator-column name=discr type=string />
        <discriminator-map>
            <discriminator-mapping value=book class=MyApp\CatalogBundle\Entity\CatalogBook />
        </discriminator-map>
        <id name=id type=integer column=id>
            <generator strategy=AUTO/>
            <sequence-generator sequence-name=tablename_seq allocation-size=100 initial-value=1 />
        </id>
        <field name=name column=name type=string length=50 nullable=true unique=false />
        <field name=isPublic column=is_public type=boolean />        
    </entity>    
</doctrine-mapping>

XML definisjonen av XML super CatalogBook, som skal strekke seg product:

<?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://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd>
    <entity name=MyApp\CatalogBundle\Entity\CatalogBook table=catalog_book>
        <id name=id type=integer column=id>
            <generator strategy=AUTO/>
            <sequence-generator sequence-name=tablename_seq allocation-size=100 initial-value=1 />
        </id>
        <field name=author_name column=author_name type=string length=50 nullable=true unique=false />
    </entity>    
</doctrine-mapping>

./php app / konsoll doktrinen: generere: enheter CatalogBundle

Fungerer fint (enheter generatetd), men CatalogBook viser seg å være en enkel class, ikke utvide product.

$book = new CatalogBook();
$book->setAuthorName('some author');
$book->setName('some book name');

fører til et unntak:

Fatal error: Call to undefined method MyApp\CatalogBundle\Entity\CatalogBook::setName()

Jeg tror, ​​jeg mangler noe i XML, som forteller CatalogBook Entity å utvide product. Men jeg coudln't finne noe i Lære to dokumentasjonen eller på Google som hjalp.

Publisert på 09/03/2011 klokken 21:20
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Generere enheter genererer ikke arven hierarki for deg, fordi det er semantisk ikke mulig. Du må gjøre det selv når du hører læren: generere: enheter.

Svarte 11/03/2011 kl. 13:01
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more