我有一个奇怪的问题。
我对 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 书中的一章,其中讲述了一些关于此的内容,但不记得它了)。