首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果数组大小较大,则无法在会话中存储数组6

如果数组大小较大,则无法在会话中存储数组6
EN

Stack Overflow用户
提问于 2020-01-25 14:58:41
回答 1查看 142关注 0票数 0

我正在使用自定义方法来验证用户身份。在验证用户身份时,我在会话中输入了一些数据。我要插入的数据是数组/对象。但是如果数组大小超过8,我就会面临一个问题。如果我放入9个数组数据,它就会让我退出(会话可能会有一些问题)。找不到这背后的原因。有谁能帮帮我吗?

这是我的数组/对象结构。

代码语言:javascript
复制
    [0] => stdClass Object
    (
        [privileges_of_role_id] => 1
        [role_id] => 4
        [institute_branch_version_id] => 1
        [is_active] => 1
    )

我正在处理的验证用户的方法:

代码语言:javascript
复制
public function signInAction(Request $request)
{
    if (!$request->ajax()) {
        $validator = Validator::make($request->all(), array(
            'identifiers' => 'required|max:255',
            'password' => 'required|max:20'
        ));

        if ($validator->fails()) {
            return redirect()->back()
                ->withErrors($validator)
                ->withInput();
        }

        try {
            $loginBy = NULL;
            $loginByValue = $request->identifiers;

            if (is_numeric($loginByValue)) {
                if (strlen($loginByValue) > 3 && substr($loginByValue, 0, 3)) {
                    $loginBy = 'phone_no';
                } else {
                    $loginBy = 'user_id';
                }
            } else if (filter_var($loginByValue, FILTER_VALIDATE_EMAIL)) {
                $loginBy = 'email';
            } else {
                $loginBy = 'username';
            }
        } catch (\Exception $ex) {
            echo $ex->getMessage();
        }

        $loginCredentials = array(
            $loginBy => $loginByValue,
            'password' => $request->password,
            'is_active' => 1
        );

        if (Auth::attempt($loginCredentials)) {

            $PrivilegesOfRole = DB::table('tbl_privileges_of_roles')
                ->where('role_id', Auth::user()->role_id)
                ->where('is_active', 1)
                ->take(8)  // if i take 9, its not letting me logged in.
                ->get();
            $request->session()->put('PrivilegesOfRole', $PrivilegesOfRole);


            return redirect()->intended(route('home::onlineInfo'));
        } else {
            return redirect()->back()
                ->with('errorMessage', 'The identifiers and password you entered don\'t match.')
                ->withInput();
        }
    } else {
        throw new Exception('Invalid request!');
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-25 15:09:35

尝试使用不同的session driver

Cookie的最大长度为4096字节-如果您当前使用的是cookie驱动程序,则可能会遇到该限制。

.env

代码语言:javascript
复制
SESSION_DRIVER=file
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59907071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档