Пользователь Symfony2 FOS не является действующим лицом - PullRequest
0 голосов
/ 02 января 2012

Я не уверен, что я здесь сделал неправильно.

Я следую инструкции по установке пакета fos и столкнулся с проблемой.

Я получаю следующую ошибку:

Неустранимая ошибка PHP: необработанное исключение 'Doctrine \ ORM \ Mapping \ MappingException' с сообщением 'Класс RS \ Entity \ User не является действительным объектом или сопоставленным суперклассом. ' в PATH \ поставщика \ доктрина \ Lib \ Doctrine \ ORM \ Mapping \ MappingException.php: 142

Мой класс пользователя находится в /src/RS/Entity/User.php

И у меня есть 'RS' => __DIR__.'/../vendor/reportsuite/src' в app/autoload.php

Класс

<?php
// /src/RS/Entity/User.php

namespace RS\Entity;

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

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

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

Насколько я могу судить, это сопоставленная сущность, разве я что-то упустил?

Я также пытался создать сущность с помощью пакета и другого пакета, например Acme/UserBundle/Entity/User.php

# Doctrine Configuration
doctrine:
    dbal:
        default_connection:       default
        connections:
            default:
                dbname:           axpdb
                user:             %database_user%
                password:         %database_password%
                host:             %database_host%
                port:             %database_port%
                charset:          UTF8
            reportsuite:
                dbname:           reportsuite
                user:             %database_user%
                password:         %database_password%
                host:             %database_host%
                port:             %database_port%
                charset:          UTF8
    orm:
        entity_managers:
            default:
                connection:       default
                mappings:
                    ReportSuiteMainMenuBundle: ~
            reportsuite:
                connection:       reportsuite
                mappings:


# Security
jms_security_extra:
    secure_controllers:  true
    secure_all_services: false

# FOS User Config
#fos_user:
#    db_driver: orm
#    firewall_name: main
#    user_class: RS\Entity\User
#    model_manager_name: reportsuite

У меня есть 2 базы данных, к которым мне нужно получить доступ, и я прокомментировал материал fos, чтобы я мог продолжить работу.

Ответы [ 3 ]

0 голосов
/ 15 марта 2012

Была эта проблема - не забудьте аннотацию * @ORM\Entity, как показано ниже:

/**
 * Powma\ServiceBundle\Entity\User
 *
 * @ORM\Entity
 * @ORM\Table(name="users")
 */
0 голосов
/ 14 апреля 2012

Пробег

touch Entity/*

и ты в порядке.

0 голосов
/ 04 января 2012

Вы проверяли пространство имен?

Я думаю, это должно быть:

namespace Namespace\YourBundle\Entity

Вы можете использовать энтиты из всех ваших пакетов.

...