0

ここで何が間違っていたのかわかりません。

fos バンドルのインストール方法に関する指示に従っていますが、問題が発生しました。

次のエラーが表示されます。

PHP 致命的なエラー:「クラス RS\Entity\User は有効なエンティティまたはマップされたスーパー クラスではありません」というメッセージを含む例外「Doctrine\ORM\Mapping\MappingException」がキャッチされません。PATH\vendor\doctrine\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のものをコメントアウトしました。

4

3 に答える 3

0

名前空間を確認しましたか?

私はそれがすべきだと思います:

namespace Namespace\YourBundle\Entity

すべてのバンドルのエンティティを使用できます。

于 2012-01-03T21:58:07.923 に答える
0

走る

touch Entity/*

そしてあなたは大丈夫です。

于 2012-04-13T20:34:24.003 に答える
-1

この問題がありました - 以下のような注釈を忘れないでください* @ORM\Entity:

/**
 * Powma\ServiceBundle\Entity\User
 *
 * @ORM\Entity
 * @ORM\Table(name="users")
 */
于 2012-03-14T23:30:03.213 に答える