Symfony2用户登录之后服务器返回500错误 | ICHARM

首页 » 博文 » Web » 正文

Symfony2用户登录之后服务器返回500错误

记录一个错误,开发symfony登录注册 功能时遇到的。

首先和stackoverflow上这位仁兄遇到的问题是一样的:Symfony 2.7 – Login form issue (500 error code)

错误描述

登录验证成功后,返回一个服务器500错误,这是一个浏览器默认的错误页面,不是symfony的错误页面,一旦点击登录页面的提交按钮后,就再也访问不了symfony的任何页面,只有重启浏览器才会重新访问到其他无权限页面。

首先,通过app/logs/dev.log下的日志文件中找不到错误的原因,上面的信息显示一切正常。

 

错误原因

看了symfony的日志和apache的日志后没有找到原因,于是参考stackoverflow上面那位仁兄的解决方法,发现问题果然是出现在用户Entity的unserialize()方法上。

/** @see \Serializable::unserialize() */
    public function unserialize($serialized)
    {
        // TODO: Implement unserialize() method.
        list (
            $this->id,
            $this->username,
            $this->restaurant,
            $this->phone,
            $this->isActive,
            ) = $this->unserialize($serialized);
//关键错误就出现在上面一行,$this会造成这个去序列化函数的死循环,应该去掉这个$this,如下
            ) = unserialize($serialized);

    }

这个$this->是编辑器自动的给我补充的,写的时候也没有太注意,WTF!还是太年轻啊。

 

发表评论