Authentication Laravel Multi Aiuth,在用户注销前设置多表会话

Authentication Laravel Multi Aiuth,在用户注销前设置多表会话,authentication,laravel-4,session-variables,Authentication,Laravel 4,Session Variables,我在laravel-4.2中使用多个表实现了多重身份验证,因此我的登录视图相应地发布了3个值,第一个是用户名,第二个是密码,第三个是下拉列表中的值,它与身份验证的值相同::()->trunt,这有助于我使用请求的表登录,如果第三个值为null,则假设身份验证::用户()->尝试开始使用。 对于多授权,我使用的是'ollieread'包装 验证实现代码为 auth.php: <?php return array( 'multi' => array( 'B

我在laravel-4.2中使用多个表实现了多重身份验证,因此我的登录视图相应地发布了3个值,第一个是用户名,第二个是密码,第三个是下拉列表中的值,它与身份验证的值相同::()->trunt,这有助于我使用请求的表登录,如果第三个值为null,则假设身份验证::用户()->尝试开始使用。 对于多授权,我使用的是'ollieread'包装 验证实现代码为

auth.php:

    <?php
return array(
    'multi' => array(
        'BSc' => array(
            'driver' => 'database',
             'table' => 'bsc',
            'model' => 'BSc'
        ),
        'user' => array(
            'driver' => 'eloquent',
            'model' => 'User',
            'table' => 'users'
        )
    ),
    'reminder' => array(
        'email' => 'emails.auth.reminder',
        'table' => 'password_reminders',
        'expire' => 60,
    ),
);
UserController@postLogin:

 public function postLogin()
 {
  $username = Input::get('username');
  $model_name = Input::get('course');
  $password = Input::get('password'),

  $credentials = array(
    'username'    => $username,
    'password' => $password,
  );

   //class exists(Model exist?)
   if(!(is_null($model_name))){
    if(class_exists($model_name)){
     if(Auth::$model_name()->attempt($credentials))
     {
       return Redirect::to('desk')->with('stream',$model_name);
     }
    else
     {
       echo "Invalid UserName";   
     }   
   }else{
     echo "No model is created for ".$model_name;
   }
   }else{
     if(Auth::user()->attempt($credentials)){
      return Redirect::intended('desktop')->with('stream',"Test");
     }
     else{
      echo "Username is invalid";     
      }
   }
在postLogin函数中,在重定向到路由“desk”时,我将变量$model_name传递到存储在会话中,这将帮助我知道用户来自哪个表

首次在登录后重定向到/desk时,$model_名称显示正确的传递值,我通过

<?php
$stream = Session::get('stream');
var_dump($stream);   
?>
那么,在用户注销之前,如何设置session::get('stream')值常量呢?
希望我的解释正确。

为了存储会话值,您可以使用laravel 4的会话外观,如下所示:

//class exists(Model exist?)

   if(!(is_null($model_name))){
    if(class_exists($model_name)){
     if(Auth::$model_name()->attempt($credentials))
     {
       Session::put('stream', $model_name);
       return Redirect::to('desk');
     }
    else
     {
       echo "Invalid UserName";   
     }   
   }else{
     echo "No model is created for ".$model_name;
   }
   }else{
     if(Auth::user()->attempt($credentials)){
      return Redirect::intended('desktop')->with('stream',"Test");
     }
     else{
      echo "Username is invalid";     
      }
   }
在使用session::forget('key')或session::flush()(可以在注销函数中使用)之前,该值将保留在名为(key)'stream'的会话中。你也可能喜欢经历


我希望这能解决你的问题。如果没有,请告诉我。

如果只需要存储会话值,可以使用Session::put。是的,我没有得到正确的方法如何将变量放入会话并重定向到/desk.Right。你也能给我看看你的注销功能吗?我是这样做的$stream=Session::put('stream','myValue');我刚刚用($stream)像return Redirect::to('desk')->一样传递了它;直到用户注销,它的doneI想看看你的注销功能。不管怎样,我已经试着回答你的问题了。请看一下并告诉我。
Auth::$stream()->username
//class exists(Model exist?)

   if(!(is_null($model_name))){
    if(class_exists($model_name)){
     if(Auth::$model_name()->attempt($credentials))
     {
       Session::put('stream', $model_name);
       return Redirect::to('desk');
     }
    else
     {
       echo "Invalid UserName";   
     }   
   }else{
     echo "No model is created for ".$model_name;
   }
   }else{
     if(Auth::user()->attempt($credentials)){
      return Redirect::intended('desktop')->with('stream',"Test");
     }
     else{
      echo "Username is invalid";     
      }
   }