gpt4 book ai didi

Symfony2 FosUserBundle 和 SonataUserBundle : overriding entities?

转载 作者:行者123 更新时间:2023-12-02 14:12:28 25 4
gpt4 key购买 nike

我在 Symfony2 项目中使用 FosUserBundle 和 SonataUserBundle。

我现在很困惑。我想为实体用户添加字段,但它不起作用。例如,架构没有更新。

这是我的配置:

AppKernel:
...
new FOS\UserBundle\FOSUserBundle(),
new Sonata\UserBundle\SonataUserBundle(),
new Application\Sonata\UserBundle\ApplicationSonataUserBundle('FOSUserBundle')


config.yml:
...
# FOSUserBundle Configuration
fos_user:
db_driver: orm # BDD type
firewall_name: main # firewall name
user_class: Application\Sonata\UserBundle\Entity\User # entity class defined

以及添加字段的用户实体,位于 app/Application/Sonata/userBundle/Entity/

namespace Application\Sonata\UserBundle\Entity;

use Sonata\UserBundle\Entity\BaseUser as BaseUser;

/**
* This file has been generated by the Sonata EasyExtends bundle ( http://sonata- project.org/easy-extends )
*
* References :
* working with object : http://www.doctrine-project.org/projects/orm/2.0 /docs/reference/working-with-objects/en
*
* @author <yourname> <youremail>
*/
class User extends BaseUser
{

/**
* @var integer $id
*/
protected $id;

/**
* @var string
*/
protected $institution;

/**
* @var string
*/
protected $department;

/**
* @var string
*/
protected $city;

/**
* @var string
*/
protected $country;

/**
* Get id
*
* @return integer $id
*/
public function getId()
{
return $this->id;
}

/**
* @return string
*/
public function getInstitution()
{
return $this->institution;
}

/**
* @return string
*/
public function getDepartment()
{
return $this->department;
}

/**
* @return string
*/
public function getCity()
{
return $this->city;
}

/**
* @return string
*/
public function getCountry()
{
return $this->country;
}
}

在我的数据库中,表 fos_user_user 似乎是包含用户保存数据的表。

调用“php app/consoledoctrine:schema:update --force”时不会创建添加的字段(国家/地区、城市...)。如何向用户实体添加字段?我迷失在 fosuserbundle 和 sonatauserbundle 中......

最佳答案

事实上,我使用 fos 和 sonata 用户包的方式似乎迫使我使用 XML 定义。因此,例如添加一个名为“city”的字段,您必须添加这些行:

User.php(在/app/Application/Sonata/UserBundle/Entity/中):

protected $city;

User.orm.xml(在/app/Application/Sonata/UserBundle/Ressource/config/doctrine/中):

<field name="city" column="city" type="text"/>

也许将其放入 bundle 的文档中对于新手来说会很有趣;)

关于Symfony2 FosUserBundle 和 SonataUserBundle : overriding entities?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617682/

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