#arrays #laravel #database #session #typeerror
Вопрос:
Я сохранил данные пользователя из базы данных в сеансе, но когда я пытаюсь получить доступ к идентификатору пользователя через сеанс, он говорит, что не может получить доступ к смещению типа string в строке.
Функция, в которой я создал сеанс
function loginUser(Request $req) { $data = $req-gt;input(); //data entered by user in form $email = $data['email'];// input email $user_data = User::WHERE(["email" =gt; $email])-gt;first(); //original user data if ($user_data == null || $user_data-gt;password != $req['password']) { return "email or pass is wrong"; } else { $req-gt;session()-gt;put("user", '$user_data'); return redirect("/"); } }
Код, в котором я пытаюсь получить доступ к идентификатору из сеанса
function addCart(Request $req) { if (session()-gt;has("user")) { $product_id = $req-gt;product_id; //product_id via form $user_id = session()-gt;get("user")['id']; //user_id via session $cart = new Cart; //assigning data to db columns $cart-gt;product_id = $product_id; $cart-gt;user_id = $user_id; $cart-gt;save(); return redirect("/"); } else { return redirect("/login"); } }
Комментарии:
1. удалите кавычки из $user_data в $req-gt;session()-gt;gt;put(«пользователь», «$user_data»); используйте без кавычек, т. е. $req-gt;gt;gt;session()-gt;gt;gt;gt;put(«пользователь», $user_data);
2. Просто из любопытства, почему вы не используете одну из собственных систем аутентификации Laravel?
3. Исследование промежуточного программного обеспечения auth (вместо изобретения колеса)