“没有为实体指定标识符/主键” - 扩展FOS用户

时间:2014-01-21 19:19:32

标签: php symfony doctrine-orm fosuserbundle

我有扩展FOSUserBundle的UserBundle和扩展FOS用户类的实体用户。在我的localhost工作正常,但在托管我有错误:

  

致命错误:未捕获异常'Doctrine \ ORM \ Mapping \ MappingException',并显示消息'没有为实体指定标识符/主键“Wiska \ CoreBundle \ Entity \ User”子类“FOS \ UserBundle \ Model \ User”。每个实体都必须有一个标识符/主键。在...

我的用户实体所有代码:

<?php
namespace WisJa\CoreBundle\Entity;

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

/**
 * @ORM\Table(name="fos_user")
 * @ORM\Entity
 */
class User extends BaseUser
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * @var string
 *
 * @ORM\Column(name="facebook", type="string", nullable=true, length=255)
 */
protected $facebook;

public function __construct()
{
    parent::__construct();
    // your own logic
}

/**
 * Get id
 *
 * @return integer 
 */
public function getId()
{
    return $this->id;
}

/**
 * Set facebook
 *
 * @param string $facebook
 * @return User
 */
public function setFacebook($facebook)
{
    $this->facebook = $facebook;

    return $this;
}

/**
 * Get facebook
 *
 * @return string 
 */
public function getFacebook()
{
    return $this->facebook;
}
}

我不知道为什么它适用于localhost但在网络中不起作用...

1 个答案:

答案 0 :(得分:2)

您需要在托管中完全清除cache目录。有时最好是rm -rf var/cache/*而不是使用Symfony控制台,但有时这可能会导致一些权限问题。这取决于您的服务器配置。