如何在laravel 5.2控制器中使用会话

时间:2016-04-30 08:00:20

标签: session laravel-5.2

我登录然后在会话中保留用户名,然后我刷新此页面,但会话没有保留值。

这是我的代码:

class WelcomeCtrl extends Controller
{
     public function gotoWelcome()
     {   
         return view('welcome')->with('user',Session::get('user'));//nothing in session
     }

        public function dologin(){
                $username = $_POST['username'];
                $password = $_POST['password'];
                $result = "";
                if($username && $password){
                    $result = User::getUser($username, $password);
                    if($result){
                        Session::set('user',$result);
                        return response()->json([true, Session::get('user')]);//I get value expected, this is ok.
                    }
                }
                return response()->json([false, Session::get('user')]);     
            }
    }

5 个答案:

答案 0 :(得分:2)

您是否已将中间件组“web”添加到路由中。在5.1中,这是所有路由的默认值,并用于会话管理和csrf验证等。

答案 1 :(得分:1)

如果使用想要使用Session ::请确保通过以下方式添加会话Facade:

use Session;

而不是这个,您可以使用会话助手。所以你可以使用以下代码:

session()->user()->email;
session()->get('user');
session()->flash('message', 'Hi there.');

有关详情,请参阅helpers

答案 2 :(得分:0)

Session::put('key','value');//to put the session value
Session::get('key');//to get the session value

Session::has('key');//to check the session variable exist or not

答案 3 :(得分:0)

记住一件事。当您在Laravel 5.2中使用ajax发布表单时,将出现CsrfTokenMismatch错误。要避免这种情况,请在$ except数组中的App / Http / Middleware / VerifyCsrfToken.php中添加您使用ajax接受表单值的路由名称。然后该路由将接受带有ajax请求的表单值。

答案 4 :(得分:0)

会话用于存储用户信息请求。 Laravel提供了各种驱动程序,例如文件,cookie,数组和数据库等,以处理会话数据。默认情况下,使用文件驱动程序,因为它是轻量级的。可以在config / session.php中存储的项目中配置会话。 How To Set Session In Laravel?

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class SessionController extends Controller {
   public function accessSessionData(Request $request) {
      if($request->session()->has('my_name'))
         echo $request->session()->get('my_name');
      else
         echo 'No data in the session';
   }
   public function storeSessionData(Request $request) {
      $request->session()->put('my_name','Ajay kumar');
      echo "Data has been added to session";
   }
   public function deleteSessionData(Request $request) {
      $request->session()->forget('my_name');
      echo "Data has been removed from session.";
   }
}
?>