$ php app/console fos:user:create
Please choose a username:admin
Please choose an email:admin21@dwq
Please choose a password:admin123
Created user admin $ php app/console fos:user:promote
Please choose a username:admin
Please choose a role:ROLE_SUPER_ADMIN
PHP Warning: Erroneous data format for unserializing 'Workshop\Bundle\BackendBundle\Entity\User' in E:\_My_File_____\_work\MyCode\myCode\phpworkspace
\symfony-workshop\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadataInfo.php on line
PHP Notice: unserialize(): Error at offset of bytes in E:\_My_File_____\_work\MyCode\myCode\phpworkspace\symfony-workshop\ve
ndor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadataInfo.php on line
PHP Fatal error: Uncaught Error: __clone method called on non-object in E:\_My_File_____\_work\MyCode\myCode\phpworkspace\symfony-
workshop\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadataInfo.php:
Stack trace:
# E:\_My_File_____\_work\MyCode\myCode\phpworkspace\symfony-workshop\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php(): Do
ctrine\ORM\Mapping\ClassMetadataInfo->newInstance()
# E:\_My_File_____\_work\MyCode\myCode\phpworkspace\symfony-workshop\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php(): Do
ctrine\ORM\UnitOfWork->newInstance(Object(Doctrine\ORM\Mapping\ClassMetadata))
# E:\_My_File_____\_work\MyCode\myCode\phpworkspace\symfony-workshop\vendor\doctrine\orm\lib\Doctrine\ORM\Internal\Hydration\Simpl
eObjectHydrator.php(): Doctrine\ORM\UnitOfWork->createEntity('Workshop\\Bundle...', Array, Array)
# E:\_My_File_____\_work\MyCode\myCode\phpworkspace\symfony-workshop\vendor\doctrine\orm\lib\Doct in E:\_My_File_____\_work\MyCode
\myCode\phpworkspace\symfony-workshop\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadataInfo.php on line

为什么会出现这个错误呢

原因就是你本机器上的php版本与你的doctrine Bundle版本有些问题;

找到你报错的行数

ve ndor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadataInfo.php on line

那么如果你和我的代码一样是这段

    public function newInstance()
{
if ($this->_prototype === null) {
if (PHP_VERSION_ID === 50429 || PHP_VERSION_ID === 50513) {
$this->_prototype = $this->reflClass->newInstanceWithoutConstructor();
} else {
$this->_prototype = unserialize(sprintf('O:%d:"%s":0:{}', strlen($this->name), $this->name));
}
} return clone $this->_prototype;
}

那么直接替换:

    public function newInstance()
{
// echo PHP_VERSION_ID; die(); // Uncomment this, in case you don't know your PHP_VERSION_ID
if ($this->_prototype === null) {
if (PHP_VERSION_ID === 50429 || PHP_VERSION_ID === 50609||PHP_VERSION_ID === 50629||PHP_VERSION_ID === 50513 || PHP_VERSION_ID === 50603 || PHP_VERSION_ID === 70009) { // This is the tricky line
$this->_prototype = $this->reflClass->newInstanceWithoutConstructor();
} else {
$this->_prototype = unserialize(sprintf('O:%d:"%s":0:{}', strlen($this->name), $this->name));
}
} return clone $this->_prototype;
}

其中PHP_VERSION_ID === 50429就是php版本号;

50429就是5.4.29,我的事5.6.29那么就是50629

如果有兴趣一起讨论php_Symfony的话还可以加群一起学习:

QQ群:182983780

参考以下是博客问题解决

http://stackoverflow.com/questions/24031048/fos-userbundle-unable-to-login

http://stackoverflow.com/questions/24596813/symfony2-contexterrorexception-on-production-server-erroneous-data-format-for

https://github.com/symfony/symfony/issues/11056

随机推荐

  1. 通过项目了解JAVA注解

    java自定义注解实践 ² 背景 最近在为公司的技术改造做准备,我设计了一个提高Web开发效率的技术框架,为了增加框架的友好性和易用性,决定采用注解来代替配置文件,于是我查询了很多的资料,进行整理和学 ...

  2. 关于websocket和ajax无刷新

    HTTP无状态: Ajax只能实现用户和服务器单方面响应(单工机制). 如果设置为长轮询(ajax设置多少秒进行一次请求,时间间隙可能会有延迟,且浪费资源) 如果设置为长连接(客户端请求一次,服务器保 ...

  3. Linux经常使用命令(八) - touch

    linux的touch命令不经常使用, 一般用来改动文件时间戳, 或者新建一个不存在的文件. 1. 命令格式: touch [选项]  文件 2. 命令參数: -a    仅仅更改存取时间. -c   ...

  4. Activity的启动流程分析

    Activity是Android应用程序的四大组件之中的一个,负责管理Android应用程序的用户界面,一般一个应用程序中包括非常多个Activity,他们可能执行在一个进程中.也可能执行在不同的进程 ...

  5. swift 可变參数

    func sumof(numbers:Int...)->Int{  var sum = 0;  for number in numbers{   sum+=number;  }  return ...

  6. Hadoop 中的 ArrayWritable

    虽然ArrayWritable不是接口,但貌似必须要子类去extends ArrayWritable,不能直接用ArrayWriable 否则会报下面的错误?(不是很确定) java.lang.Exc ...

  7. docker教程之从一头雾水到不一头雾水(3)

    本文主要是介绍Docker容器的相关内容 容器创建 我们已经知道,镜像是只读的,而基于镜像创建出来的容器是可读写的,所以,一般我们实际中,会经常使用对应镜像创建容器并且使用这些容器.同样,如果我们想要 ...

  8. docker与虚拟化的联系与区别

    虚拟化技术是一个总称,是一系列实现虚拟技术的统称.从广义上来说,虚拟化技术包括了虚拟机技术和容器技术, 所谓虚拟化技术最大的特点就是将一个真实的机器进行虚拟地分割,然后分割出来的部分可以独立使用   ...

  9. [LeetCode]Palindrome Number 推断二进制和十进制是否为回文

    class Solution { public: bool isPalindrome2(int x) {//二进制 int num=1,len=1,t=x>>1; while(t){ nu ...

  10. tornado 初学

    tornado第一个例子 import tornado.ioloopimport tornado.web class MainHandler(tornado.web.RequestHandler): ...