【问题标题】:Doctrine doesn't map fields from FOSUserBundle User-classDoctrine 不映射来自 FOSUserBundle 用户类的字段
【发布时间】:2016-02-26 17:35:07
【问题描述】:

当从 FOSUserBundle 继承 User-Class 时,教义将无法识别基 User 类的继承属性。

只有我自己的类的属性将用于创建/更新数据库架构。

这是 config.yml:

config.yml:

doctrine:
    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        mappings:
            FOSUserBundle: ~
            AppBundle: ~

fos_user:
    db_driver: orm 
    firewall_name: main
    user_class: AppBundle\Entity\User

我的用户实体:

<?php
namespace AppBundle\Entity;

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

/**
 * @ORM\Entity()
 * @ORM\Table(name="s_user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /** @ORM\Column(name="facebook_id", type="string", length=255, nullable=true) */
    protected $facebook_id;

    /** @ORM\Column(name="facebook_access_token", type="string", length=255, nullable=true) */
    protected $facebook_access_token;

    /** @ORM\Column(name="google_id", type="string", length=255, nullable=true) */
    protected $google_id;

    /** @ORM\Column(name="google_access_token", type="string", length=255, nullable=true) */
    protected $google_access_token;

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

我在这里做错了什么?

【问题讨论】:

    标签: php symfony doctrine-orm


    【解决方案1】:

    尝试更改此行:

    use FOS\UserBundle\Model\User as BaseUser;
    

    收件人:

    use FOS\UserBundle\Entity\User as BaseUser;
    

    缺少的字段应该添加到下一个schema:update --force的表结构中

    【讨论】:

    • 这不起作用...命令 schema:update --dump-sql 显示它将从用户表中删除 FOS User 的所有字段。此外,不推荐使用 use FOS\UserBundle\Entity\User。我有同样的问题,没有回答这个问题......所以如果有人有一个......
    • 这完美地解决了这个问题。它只是不适合您的问题,您肯定会在您的实体中遗漏一些东西,例如 parent::__construct()
    • 不,调用的是父构造函数。
    • 对不起,这个问题不是你的问题,只是可能重复。如果不是,你不应该结束你的问题。也许重新打开它
    猜你喜欢
    • 1970-01-01
    • 2016-06-25
    • 2013-05-17
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2014-02-12
    相关资源
    最近更新 更多