1

我有一个奇怪的问题。
我对 symfony2 完全陌生,所以如果这是一个愚蠢的问题,请原谅我。

但是,我正在尝试创建两个实体,它们会将持久数据保存到数据库中,并且这两个实体将一个用于用户,一个用于组。
我已经按照教程定义了这两个类,一切似乎都很好,因为我只创建了第一个实体并运行php app/console doctrine:schema:update --force——顺便说一句,数据库已经创建了!

第二次我决定创建第二个实体(它将与第一个实体有关系,我决定使用教义符号来定义该关系)。

这是我的重要代码

 // 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

当我忘记声明我的命名空间(使用 Zend 1.12 和 Doctrine 2)时,我遇到了这个问题。在文件类型处添加命名空间声明解决了我的问题。

于 2013-08-29T01:34:04.800 回答
1

这可能只是一个错字,但您发布的文件摘录顶部的注释中的文件路径与您的致命错误和命名空间声明中的文件路径不同。您在src/Sestante/UserBundle/Entity/GroupAndRoles.php和处有重复的文件src/UserBundle/GroupAndRoles.php吗?

于 2012-06-20T10:11:36.303 回答