我使用过Symfony 2并且我已成功配置 FOSUserBundle 。
在生产和开发模式下,我的应用程序在Windows机器上运行良好
但是当我在Linux机器上部署它时,它在开发模式下工作正常,但它在生产模式下提供了一个空白页面。当我检查错误日志文件时,它有以下错误:
request.CRITICAL: Doctrine\ORM\Mapping\MappingException: Class \Entity\User is not a
valid entity or mapped super class. (uncaught exception)
request.CRITICAL: Exception thrown when handling an exception
(Doctrine\ORM\Mapping\MappingException: Class \Entity\User is not a valid entity or
mapped super class.) [] []
查看我的用户实体类:
/**
* @ORM\Entity(repositoryClass="\Repository\UserRepository")
* @ORM\Table(name="user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length="255")
*
* @Assert\NotBlank(message="Please enter your name.", groups={"Registration", "Profile"})
* @Assert\MinLength(limit="3", message="The name is too short.", groups={"Registration", "Profile"})
* @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"})
*/
protected $name;
/**
* @ORM\Column(type="date", length="255", nullable=true)
*
* @Assert\NotBlank(message="Please select your Date Of Birth.", groups={"Registration", "Profile"})
*/
protected $dob;
/**
* @ORM\Column(type="string", length="255")
*
* @Assert\NotBlank(message="Please select your Date Of Birth.", groups={"Registration", "Profile"})
*/
protected $gender;
/**
* Override $email so that we can apply custom validation.
*
* @Assert\Email(groups={"AppRegistration"})
*/
protected $email;
/**
* @var string $firstName
*
* @ORM\Column(name="first_name", type="string", length=20, nullable=true)
*/
protected $firstName;
/**
* @var string $lastName
*
* @ORM\Column(name="last_name", type="string", length=20, nullable=true)
*/
protected $lastName;
/**
* @var datetime $createdAt
*
* @ORM\Column(name="created_at", type="datetime", nullable=true)
*/
protected $createdAt;
/**
* @ORM\Column(type="string", length="255", nullable=true)
* @var string
*/
protected $facebookID;
/**
* @ORM\Column(type="string", length="255", nullable=true)
* @var string
*/
protected $twitterID;
/**
* @ORM\Column(type="string", length="255", nullable=true)
* @var string
*/
protected $twitter_username;
/**
* @ORM\Column(type="string", length="255", nullable=true)
* @var string
*/
protected $image_path;
/**
* @ORM\Column(name="home_town",type="string", length="255", nullable=true)
* @var string
*/
protected $homeTown;
/**
* @ORM\Column(name="location",type="string", length="255", nullable=true)
* @var string
*/
protected $location;
/**
* @ORM\Column(name="interest",type="string", length="255", nullable=true)
* @var string
*/
protected $interest;
/**
* @ORM\Column(name="friend",type="string", length="255", nullable=true)
* @var string
*/
protected $friend;
/**
* @var smallint $age
*
* @ORM\Column(name="age", type="smallint", nullable=true)
*/
protected $age;
/**
* @var string $country
* @ORM\ManyToOne(targetEntity="Country", inversedBy="user")
* @ORM\JoinColumn(name="country_id", referencedColumnName="id")
* @ORM\Column(name="country_id", type="string", length=25, nullable=true)
*/
protected $countryId;
/**
* @ORM\OneToMany(targetEntity="ProfileViewer", mappedBy="viewer")
*/
protected $viewers;
..................
答案 0 :(得分:1)
我认为您需要将名为User
的实体更改为任何其他名称,例如Users
。
因为User是数据库中的保留关键字。更改此设置并再次构建架构。可能这是错误吗?