2012-06-20 52 views
1

的重新定義我有一種奇怪的問題。
我對symfony2完全陌生,所以原諒我,如果這是一個愚蠢的問題。Symfony2的 - 學說:一類問題

不過,我試圖創建將持久化數據到數據庫和兩個實體將是一個用戶,一個用於組中的兩個實體。
我定義了以下一個tutorial,一切似乎如我只創建了第一個實體去罰款和運行php app/console doctrine:schema:update --force這兩個類 - 順便說一句分貝是alredy創造!

在第二次我已經決定要創建第二個實體(這將具有與第一有關係的,我已經決定要使用學說記法定義的關係)。

這是我顯著代碼

// 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我得到這個錯誤

Fatal error: Cannot redeclare class Sestante\Bundle\UserBundle\Entity\GroupAndRoles in /var/www/html/symfony/Symfony/src/Sestante/UserBundle/Entity/GroupAndRoles.php on line 13

而且我一直試圖找到從我的應用程序的根目錄中找到一個文件t實體可以用該命令find . -type f -exec grep Sestante\Bundle\UserBundle\Entity\GroupAndRoles {} \;重新定義,但沒有產生任何結果。

我想,我的思念像涉及到它,也許,高速緩存或東西嗎? (閱讀symfony的一章,講述了一些關於它的內容,但不要忘記它)。

回答

1

這可能只是一個拼寫錯誤,但文件頂部的註釋中的文件路徑摘錄的帖子與您的致命錯誤和命名空間聲明中的文件路徑不同。你有沒有複製文件在src/Sestante/UserBundle/Entity/GroupAndRoles.phpsrc/UserBundle/GroupAndRoles.php

+0

不,對不起。這是我的錯誤。現在我用正確的路徑更新了這個問題 – DonCallisto

+0

你的回答讓我看看一個好點:我使用的命名空間與聲明類的名稱空間不同。因此,將'名稱空間Sestante \ Bundle \ UserBundle \ Entity;'更改爲'名稱空間Sestante \ UserBundle \ Entity;'完成了這項工作。謝謝,我會認爲這是正確的答案;-) – DonCallisto

+1

謝謝。我在發佈答案後想知道這是否是問題。在這種情況下知道錯誤信息是很好的,這可能會在未來爲我節省一些困惑。 – Pappa

1

我有這個問題,當我忘了我的聲明命名空間(使用Zend 1.12和學說2)。在文件類型中添加命名空間聲明可以解決我的問題。