【问题标题】:"No identifier/primary key specified for Entity" - extends FOS User“没有为实体指定标识符/主键” - 扩展 FOS 用户
【发布时间】:2014-01-21 19:19:31
【问题描述】:

我有扩展 FOSUserBundle 的 UserBundle,以及扩展 FOS 的 User 类的实体 User。在我的本地主机上工作正常,但在托管时出现错误:

致命错误:未捕获的异常“Doctrine\ORM\Mapping\MappingException”,消息“没有为“FOS\UserBundle\Model\User”的实体“WisJa\CoreBundle\Entity\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 上工作,但不能在 web 上工作......

【问题讨论】:

  • 尝试清除cache目录
  • 这很奇怪...我在上传文件之前清除了缓存目录,然后出现错误,现在我再次清理缓存,现在它可以工作了:o 所以,谢谢你的帮助,现在一切正常:)
  • 我也有这个问题
  • 是的,将新文件放在那里之后总是清除缓存:清除和上传之间的请求有一个(小)机会会缓存旧代码而不是新代码。

标签: php symfony doctrine-orm fosuserbundle


【解决方案1】:

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

【讨论】:

  • 完全cache dir 是什么意思?
  • 嘿@Trix,我的意思是你需要完全清除缓存目录,很抱歉造成混淆。有时最好使用rm -rf var/cache/* 而不是使用 Symfony 控制台,但有时可能会导致一些权限问题,具体取决于您的服务器配置
  • 把这些放在你的答案中,而不是 cmets
猜你喜欢
  • 2013-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-06
  • 1970-01-01
  • 2015-07-25
  • 2016-01-31
  • 2018-08-13
相关资源
最近更新 更多