加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

Symfony2无法启动会话:已由PHP启动

发布时间:2020-05-25 08:51:36 所属栏目:PHP 来源:互联网
导读:我有一个非常奇怪的问题,看起来像这样: [2014-11-06 11:21:13] request.INFO: Matched route core_timetracking_new_user (parameters: _controller: BricksCustomCoreBundleControllerTimeTrackingController::newuserActio

我有一个非常奇怪的问题,看起来像这样:

[2014-11-06 11:21:13] request.INFO: Matched route "core_timetracking_new_user" (parameters: "_controller": "BricksCustomCoreBundleControllerTimeTrackingController::newuserAction","_route": "core_timetracking_new_user") [] []
[2014-11-06 11:21:13] request.CRITICAL: Uncaught PHP Exception RuntimeException: "Failed to start the session: already started by PHP." at /var/cache/app/prod/classes.php line 113 {"exception":"[object] (RuntimeException: Failed to start the session: already started by PHP. at /var/cache/app/prod/classes.php:113)"} []

奇怪的是我没有开始会话或使用它,继承人控制器代码:

/**
 * @View
 */
public function newuserAction()
{
    $trackingService=$this->get('core.timetracking_service');
    $user= new TimeTrackingUser();
    $request=$this->getRequest();

    $form = $this->createFormBuilder($user)
        ->add('name','text')
        ->add('email','text')
        ->add('pass','password')
        ->add('save','submit',array('label' => 'Erstellen'))
        ->getForm();

    $form->handleRequest($request);

    if ($form->isValid()) {
        $trackingService->persistUser($form->getData());
        return $this->redirect($this->generateUrl('core_timetracking_user_list'));
    }else {
        return array(
            'form' => $form->createView()
        );
    }
}

虽然这个动作很棒

/**
 * @View
 */
public function listuserAction()
{

    $request=$this->getRequest();
    $trackingService=$this->get('core.timetracking_service');    
    $users=$trackingService->getAllUsers();

    return array(
        'users' => $users
    );
}

所以唯一的区别是我使用

$form->handleRequest($request);

还检查了我的所有文件AppKernel等是否都以

两个动作(工作一个和不工作一个)都在同一个控制器中

只要呈现表单,Symfony就会自动启动会话以存储CSRF保护的令牌:
http://symfony.com/doc/current/book/forms.html#csrf-protection

您可以禁用CSRF保护,但默认情况下它处于启用状态.

@rakete:
我唯一的想法是改变存储会话文件的方式(例如文件系统,数据库,内存等).见:http://symfony.com/doc/current/components/http_foundation/session_configuration.html

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读