【发布时间】:2012-06-20 09:57:56
【问题描述】:
我有一个奇怪的问题。
我对 symfony2 完全陌生,如果这是一个愚蠢的问题,请原谅我。
但是,我正在尝试创建两个实体,它们会将持久数据保存到数据库中,并且这两个实体将一个用于用户,一个用于组。
我在tutorial 之后定义了这两个类,一切似乎都很好,因为我只创建了第一个实体并运行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 书中的一章,其中讲述了一些相关内容,但不记得了)。
【问题讨论】:
标签: class symfony doctrine-orm doctrine