php – Doctrine 2:有没有办法使用yaml或xml从特征继承映射?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Doctrine 2:有没有办法使用yaml或xml从特征继承映射?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
找到了 following example in the doctrine documentation,他们已经@L_304_1@了映射到特征:
/**
 * Trait class
 */
traIT ExampleTrait
{
    /** @Id @Column(tyPE="string") */
    PRivate $id;

    /**
     * @Column(name="trait_foo",type="integer",length=100,nullable=true,unique=true)
     */
    protected $foo;

    /**
     * @OneToOne(targetEntity="Bar",casCADe={"persist","merge"})
     * @JoinColumn(name="example_trait_bar_id",referencedColumnName="id")
     */
    protected $bar;
}

我试图映射一个特征,而不必复制继承它的类中的映射.我没有诚实地尝试过这个,因为我当前的项目使用yaML进行映射,但看起来普通的PHP类在使用特性时也会继承映射.

有没有办法继承这个特征的映射而不使用关联,而是使用yaml或XMl?我尝试将特性设置为mapped superclass,但它没有用,但我基本上都在寻找相同类型的想法.

谢谢.

使用YAML声明mappedSupperClass:
namespace\For\Your\MappingClass:
    type: mappedSuperclass
    fields:
        id:
            id:
                type: integer
                generator:
                    strategy: AUTO

        ... other fields and relations

用XML声明它:

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

    <;mapped-superclass name="Namespace\For\Your\MappingClass">

        <field name="foo" column="foo" type="string" length="255" />

        <field name="bar" column="bar" type="string" length="255" unique="true" />

        ... other fields

    </mapped-superclass>

</doctrine-mapping>

如果您运行app / console doctrine:generate:entities,您将能够在其他实体中使用MappedSuperClass作为优势.

脚本宝典总结

以上是脚本宝典为你收集整理的php – Doctrine 2:有没有办法使用yaml或xml从特征继承映射?全部内容,希望文章能够帮你解决php – Doctrine 2:有没有办法使用yaml或xml从特征继承映射?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。