1

奇妙な問題があります。
私はsymfony2にまったく慣れていないので、これがばかげた質問であるなら許してください。

ただし、永続データをデータベースに作成する2つのエンティティを作成しようとしています。このエンティティは、ユーザー用とグループ用の2つのエンティティになります。チュートリアル
に従ってこれらの2つのクラスを定義しましたが、最初のエンティティのみを作成して実行すると、すべてがうまくいくようです-ところで、dbはすでに作成されています!。php app/console doctrine:schema:update --force

2回目に、2番目のエンティティを作成することにしました(最初のエンティティと関係があり、その関係を定義するために教義表記を使用することにしました)。

これは私の重要なコードです

 // src/Sestante/UserBundle/Entity/User.php
 [...]
 /**
 * @ORM\ManyToMany(targetEntity="GroupAndRoles", inversedBy="users")
 *
 */
 private $groups;
 [...]

// src/Sestante/UserBundle/Entity/GroupAndRoles.php
<?php

namespace Sestante\Bundle\UserBundle\Entity;

use Symfony\Component\Security\Core\Role\RoleInterface;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Table(name="groups")
 * @ORM\Entity()
 */
class GroupAndRoles implements RoleInterface
{
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id()
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(name="name", type="string", length=30)
     */
    private $name;

    /**
     * @ORM\Column(name="role", type="string", length=20, unique=true)
     */
    private $role;

    /**
     * @ORM\ManyToMany(targetEntity="User", mappedBy="groups")
     */
    private $users;

    public function __construct()
    {
        $this->users = new ArrayCollection();
    }

    // ... getters and setters for each property

    /**
     * @see RoleInterface
     */
    public function getRole()
    {
        return $this->role;
    }
}
?>

もう一度実行するphp app/console doctrine:schema:update --forceと、このエラーが発生します

致命的なエラー:13行目の/var/www/html/symfony/Symfony/src/Sestante/UserBundle/Entity/GroupAndRoles.phpのクラスSestante \ Bundle \ UserBundle \ Entity\GroupAndRolesを再宣言できません

さらに、アプリケーションのルートから、そのエンティティをそのコマンドで再定義できるファイルを見つけようとしましたfind . -type f -exec grep Sestante\Bundle\UserBundle\Entity\GroupAndRoles {} \;が、結果は生成されませんでした。

キャッシュかそれに関連するものが足りないと思いますか?(それについて何かを語ったsymfonyの本の章を読んでください、しかしそれが泣いていることを覚えていません)。

4

2 に答える 2

1

これは単なるタイプミスかもしれませんが、投稿したファイルの抜粋の上部にあるコメントのファイルパスは、致命的なエラーや名前空間の宣言のファイルパスとは異なります。とでファイルが重複していますsrc/Sestante/UserBundle/Entity/GroupAndRoles.phpsrc/UserBundle/GroupAndRoles.php

于 2012-06-20T10:11:36.303 に答える
1

名前空間を宣言するのを忘れたときにこの問題が発生しました(Zend1.12とDoctrine2を使用)。ファイルのタイプに名前空間宣言を追加すると、問題が修正されました。

于 2013-08-29T01:34:04.800 に答える