4

FOSUserBundle (公式ドキュメント)をインストールすると、次のfos_userコマンドを使用してテーブルを生成しようとします。

php app/console doctrine:schema:update --force

しかし、コンソールは次のメッセージを返します

更新するものはありません - データベースは既に現在のエンティティ メタデータと同期しています

私は Symfony 2.1 と FOSUserBundle の最新バージョンを使用しています。

app/AppKernel.phpが含まれています

new FOS\UserBundle\FOSUserBundle(),

app/config/config.ymlが含まれています

fos_user:
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
    firewall_name: main
    user_class: Krpano\UserBundle\Entity\User

src/Krpano/UserBundle/Entity/User.phpが含まれています

namespace Krpano\UserBundle\Entity;

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

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

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

そして、自分のウェブサイトにアクセスしようとすると、次のエラーが発生します。

MappingException: クラス 'Krpano\UserBundle\Entity\User' がチェーン構成された名前空間 FOS\UserBundle\Entity、Krpano\ServicesBundle\Entity で見つかりませんでした

手伝って頂けますか?

4

5 に答える 5

4

更新するものはありません - データベースは既に現在のエンティティ メタデータと同期しています

AppKernel.php に宣言がないため、エンティティが登録されていないことを意味します。

Doctrine はアクティブなバンドルのみを検索します。

行を追加した後:

new Krpano\UserBundle\KrpanoUserBundle(),

そのように:

public function registerBundles()
    {
            $bundles = array(    
            ...
            new Krpano\UserBundle\KrpanoUserBundle(),
            new FOS\UserBundle\FOSUserBundle(),    
            ...

        ); ...

これを試して:

php app/console doctrine:schema:update --force

Doctrine が返された場合:

Database schema updated successfully! "1" queries were executed

あなたの問題は解決しました。

私の答えは、カルロス・グラナドスの答えの完成です。

于 2012-09-11T13:12:10.303 に答える
3

Add

new Krpano\UserBundle\KrpanoUserBundle(),

To your app/AppKernel.php file

于 2012-08-28T09:03:28.327 に答える