当前位置: 首页 > 知识库问答 >
问题:

特性-与父类的属性冲突

景震博
2023-03-14
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;

    // ..
}

但是当我运行我的代码时,我得到了这个错误:

共有1个答案

艾和通
2023-03-14

不,现在还不可能通过使用特征重写映射的属性。

另外,一个可能的替代方法是使用多个抽象实体类,并根据需要扩展您的子实体。

即。

<?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
}
 类似资料:
  • 当类使用具有相同属性的两个特征时,如何解决属性名称冲突? 示例: 提前道谢!

  • 我正试图扩展一种特质。我的意思是创建一个特性,为不同的特性重新定义几个方法。 这是我的代码(PHP5.6和Laravel 5.4): 当我在一个模型中使用时,问题就出现了,它与冲突,因为具有。在PHP7之前,如果您尝试两次定义同一属性,traits会抛出一个致命错误。因此,由于我在中定义了,并通过借助再次定义了,因此它就中断了。 简言之: 有没有办法说服PHP,它真的是同样的事情,它可以停止与自己

  • 我最近盯着Kotlin看,有Java的经验。在Java中,我们可以声明与在parent中同名的字段。当我在中这样做时,它给出错误的成员。我错过了什么?

  • 问题内容: 是HTML的属性吗? 我应该做还是 我读了很多文章,但仍然感到困惑。 有人可以向我解释一下HTML / JS中的属性与属性之间的区别是非常简单的吗? 问题答案: 属性由HTML定义。属性(在DOM元素上)由DOM(以及HTML 5定义,模糊了标记和DOM之间的边界)。 一些HTML属性具有1:1映射到属性。就是这样的一个例子。 有时名称是不同的。该属性映射到该属性,该属性映射到该属性(

  • 在OWL中,不可伸缩属性的子属性也是不可伸缩的吗?同样,非对称属性的子属性也是非对称的吗? 从逻辑上讲,它们应该是这样的,但我在OWL文档中找不到任何说明这种情况的内容。 考虑以下示例: 基于此本体,不允许出现以下情况,因为的父项是不可伸缩的: 但是是否也隐含地不反射性呢?换句话说,这是否也被禁止: 如果你认为一个属性是一组连接成对的点的箭头,那么不可反身仅仅意味着没有在同一个点开始和结束的箭头。

  • 我正在尝试使用JAXB读取一个xml。 我正面临一个奇怪的问题,其中父类的属性没有被读取,但子类的属性被读取。我参考了论坛,但这似乎是一个奇怪的论坛。 谁能告诉我我犯了什么错误。 XML。 电话目录类 电话号码类 主类 输出 如您所见,尽管提到了字段的XMLAt⃣注释,但exchange eName为null。 谢谢,毗湿奴