【问题标题】:Laravel, check if session array has valueLaravel,检查会话数组是否有值
【发布时间】:2015-02-07 16:43:59
【问题描述】:

如何检查某个值是否已存在于 Session 数组中?我正在尝试将活动树对象存储在 Session 数组中以打开和关闭它们:

public function postSelected()
{
    $id = Input::get('id');
    if (Session::has('user.selection', $id)) { // check?
        Session::pull('user.selection', $id);
    } else {
        Session::push('user.selection', $id);
    }

    return Response::json(Session::get('user.selection'), 200);
}

有什么想法吗?

【问题讨论】:

    标签: php arrays session laravel


    【解决方案1】:

    假设您尝试做的类似于切换(如果存在则删除,如果缺少则添加):

    $index = array_search($id, $selection = Session::get('user.selection', []));
    
    if ($index !== false)
    {
        array_splice($selection, $index, 1);
    }
    else
    {
        $selection[] = $id;
    }
    
    Session::set('user.selection', $id);
    

    【讨论】:

    • 就这么简单!会话结束时的那些括号在做什么?成功了,谢谢! in_array我已经试过了,但是没有成功。
    • @wiesson - 这些括号是短数组表示法(相当于array(),它创建一个空数组)。基本上,它确保您处理的是一个数组。
    • array_pull 不会从我的数组中删除所需的项目。有什么特别需要注意的吗?
    • 我在前后添加了 Log::info($selection) 还是一样,我的树也不会更新。 (如果有帮助,我存储的是字符串,而不是整数)
    • @wiesson - 哎呀! array_pull 适用于键,而不是值。我更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 2018-04-04
    • 2018-04-10
    • 2020-04-21
    • 2020-08-03
    • 1970-01-01
    • 2017-11-27
    • 2019-12-09
    • 1970-01-01
    相关资源
    最近更新 更多