首页 > 解决方案 > OctoberCMS Session 无法推送

问题描述

我正在使用此线程https://octobercms.com/docs/services/session创建 OctoberCMS 会话,我正在尝试推送我的会话,但它不起作用。这是我的代码(尝试)。

<a href="javascript:void(0)" data-request="{{ __SELF__ }}::onSessionCreate">Create Sessions</a>

public function onSessionCreate(){
     $token = 'my token';
    $array = array(
                'id' => '500',
                'name'=>'sdfsd',
                'surname'  => 'zf'
    );
    
     \Session::put('user.token', $token);
     \Session::push('user.persons', $array);       
     
    $sessionData = \Session::get('user');
    echo '<pre>';
    print_r($sessionData);
    exit;

}

正如您在上面的代码中看到的那样,我有Create Session按钮,每次点击时,我都想推送我的person会话。但是当我打印我的时sessionprint_r($sessionData); 我一直得到与数组相同的响应。

Array
(
    [token] => my token
    [persons] => Array
        (
            [0] => Array
                (
                    [id] => 500
                    [name] => sdfsd
                    [surname] => zf
                )

        )

)

有人可以指导我为什么我无法推送我的会话数组吗?

标签: phpoctobercms

解决方案


嗯,问题是你的代码是stopping execution in middle of the workflow.

当您使用时,sessions您需要让请求完成exiting in between

工作演示

您的代码部分

function onSessionCreate(){
    $token = 'my token';
    $array = array(
        'id' => '500',
        'name'=>'name',
        'surname'  => 'surname'
    );
    
    \Session::put('user.token', $token);
    \Session::push('user.persons', $array);            
    return 'ok';
}    

function onGetSession() {
    $sessionData = \Session::get('user');
    return $sessionData;
}

您的模板部分

<div class="container">
    <a href="javascript:void(0)" data-request="onSessionCreate">Create Sessions</a> <br/>
    <a href="javascript:void(0)" data-request="onGetSession">Get Sessions</a>
</div>

结果-单击下面的 GIF 以高质量观看。

在此处输入图像描述

如有任何疑问,请发表评论。


推荐阅读