gpt4 book ai didi

php - Symfony2 覆盖 User.orm.xml

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:05:23 25 4
gpt4 key购买 nike

我需要覆盖这个 Symfony\vendor\friendsofsymfony\user-bundle\FOS\UserBundle\Resources\config\doctrine\model\User.orm.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="FOS\UserBundle\Model\User">

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

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

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

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

<field name="enabled" column="enabled" type="boolean" />

<field name="salt" column="salt" type="string" />

<field name="password" column="password" type="string" />

<field name="lastLogin" column="last_login" type="datetime" nullable="true" />

<field name="locked" column="locked" type="boolean" />

<field name="expired" column="expired" type="boolean" />

<field name="expiresAt" column="expires_at" type="datetime" nullable="true" />

<field name="confirmationToken" column="confirmation_token" type="string" nullable="true" />

<field name="passwordRequestedAt" column="password_requested_at" type="datetime" nullable="true" />

<field name="roles" column="roles" type="array" />

<field name="credentialsExpired" column="credentials_expired" type="boolean" />

<field name="credentialsExpireAt" column="credentials_expire_at" type="datetime" nullable="true" />

</mapped-superclass>

</doctrine-mapping>

我需要更改此字段:

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

对此:

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

我将 getParent 方法添加到我的 UserBundle。我复制了 Symfony\vendor\friendsofsymfony\user-bundle\FOS\UserBundle\Resources\config\doctrine\model\User.orm.xml给我的捆绑 Symfony\src\Acme\UserBundle\Resources\doctrine\model\User.orm.xml但是当我改变它时,我看不到效果。我做错了什么?

最佳答案

我想通了。解决方案是向用户实体添加特殊注释,我在早期的 FOSUserBundle 文档中创建了该实体。

 * @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="email", column=@ORM\Column(type="string", name="email_address", length=255)),
* })

整个类应该是这样的:

<?php
namespace Acme\UserBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity
* @ORM\Table(name="sf_guard_user")
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="email", column=@ORM\Column(type="string", name="email_address", length=255)),
* })
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;

public function __construct()
{
parent::__construct();
// your own logic
}
}

关于php - Symfony2 覆盖 User.orm.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23106087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com