如何使用laravel4将会话变量传递到视图中

时间:2016-02-25 11:02:23

标签: laravel-4

我想将登录的id传递到我的视图页面。我在user_login_submits的函数中获得了id。

实际上我想在同一个控制器中的另一个函数中获取id。 如何在控制器中获取会话ID 通常会话就足够我做了。

这是我的代码,任何人都可以查看并告诉我需要更改的内容

控制器

public void setRank(String r){
       this.Rank = Stream.of(Ranks).filter(p->p.equalsIgnoreCase(r)).findAny().orElse("Associate");
}

模型

      public function user_login_submits()
     {
          $inputs = Input::all();

             $uname = Input::get('username');
             $password = Input::get('password');

             $logincheck=Userlogin::login_checks($uname,$password);
            if($logincheck == 1)
            {
            $id=Session::get('customer_id');


            return Redirect::to('businessprio/create_news?p=1');

            }
            else if($logincheck == 0)
            {

                 //echo "fail";
                return Redirect::to('businessprio/create');
            }

         }  

1 个答案:

答案 0 :(得分:0)

我不会将它传递给模型,而是我会在控制器本身中进行,

public function user_login_submits()
{
    $uname = Input::get('username');
    $password = Input::get('password');

    $check = DB::table('customer_login')
            ->where('username','=',$uname)
            ->where('password','=',$password)->count();
    if($check==1)
    {
    $id=Session::get('customer_id');    
    return Redirect::to('businessprio/create_news?p=1');
    }
    else
    {
    return Redirect::to('businessprio/create');    
    }
} 

推荐:

但我强烈建议你通过Auth ::尝试来做,即遵循干净的

public function user_login_submits()
{
    if (Auth::attempt(['email' => $userEmail, 'password' => $userPassword])) {
        return Redirect::to('businessprio/create_news?p=1');
    }
    else
    {
        return Redirect::to('businessprio/create');    
    }
}

如果您这样做,则可以访问经过身份验证的用户的默认检查

Auth::check()

通过

获取登录用户详细信息
Auth::user()->id
Auth::user()->username

注意:要使用默认Auth::attempt,您也应该使用用户模型。