2014-10-18 47 views
2

我想了解如何使用Symfony2和FOSUserBundle進行註冊。我是這樣做與提供的文檔,一步一步:https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md但是當我嘗試運行comman php app/console doctrine:schema:update --force我得到這個錯誤:如果我運行命令php app/console cache:clearSymfony2 FOSUserBundle無法更新原則數據庫架構或清除緩存

[Doctrine\ORM\Mapping\MappingException]          
No identifier/primary key specified for Entity "Registration\BusinessBundle\Entity\BusinessUser" 
sub class of "FOS\UserBundle\Model\User". 
Every Entity must have an identifier/primary key. 

我得到同樣的錯誤。我嘗試手動刪除緩存文件夾,但當我嘗試更新教義架構時,再次出現相同的錯誤。

我BusinessUser實體:

<?php 
namespace Registration\BusinessBundle\Entity; 

use FOS\UserBundle\Model\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity 
* @ORM\Table(name="business_user") 
*/ 

class BusinessUser extends BaseUser 
{ 
    /* 
    * @ORM\Column(type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 
    public function __construct() 
    { 
     parent::__construct(); 
    } 
} 

回答

3

既然你把這個問題在計算器2次,我複製和粘貼我的回答:

你的實體不包含在使用你的學說註釋PHP的docblock評論。

Docblocks有兩個星號的startet,否則它只是一個簡單的評論。

您當前的代碼

/* 
* @ORM\Id 
* @ORM\Column(type="integer") 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
protected $id; 

更改爲

/** 
* @ORM\Id 
* @ORM\Column(type="integer") 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
protected $id; 

只有/ **將註釋被學說的認可。

請檢查您的其他屬性。