登录时捕获用户ID并根据操作保存用户ID

时间:2018-05-05 09:24:37

标签: php laravel laravel-5.5 laravel-5.6

我需要捕获登录用户,当我添加问题时,我需要在问题表中保存相应的用户ID。我在登录时获取用户ID但是它没有保存在问题表中

具有商店功能的控制器

 public function store(Request $request)
    {
        //
        $last_que = Question::orderBy('question_id', 'desc')->first();
        if ($last_que != null) {
            $old_queId = $last_que->question_id;
            $old_queId = $old_queId + 1;
        } else {
            $old_queId = 1;
        }
        $qorder=$request->input('order');
        $question=new Question();
        $quest=$question->checkDuo($qorder);
        if(count($quest)==0)
        {
            $que=Question::create([
                'question'=>$request->input('question'),
                'question_id'=>$old_queId,
                'question_type'=>$request->input('qtype'),
                'question_schedul'=>$request->input('qschedule'),
                'created_user_id'=>Session::get('created_id'),
                'order_no'=>$request->input('order')
            ]);
            if($que)
            {
                return redirect()->route('questions.index')->with('success', 'Successfully saved');
            }
        }
        else
        {
            return redirect()->back()->with('fail', 'Unable to save..! Entry with same order no. already exist');

        }
    }

在登录索引文件中,这是我用来捕获用户ID

<?php
if (!empty($id)) {
    Session::put('created_id', $id);
}
?>

登录控制器

 public function postSignIn(Request $request)
    {

        if (Auth::attempt(['username' => $request['username'], 'password' => $request['password']])) {
            $user = DB::table('users')->where([['username', '=', $request['username']], ['status', '=', '0']])->first();
            $user_id = $user->user_id;


            return redirect()->route('dashboard', $user_id)->with('message', 'State saved correctly!!!');
        } else {
            return redirect()->back();
        }


    }

3 个答案:

答案 0 :(得分:3)

获取用户ID。使用这样的东西。

Auth:user()->id;

或者您可以使用

Session::getId();

答案 1 :(得分:1)

更改此行,

'created_user_id'=>Session::get('created_id'),

要,

'created_user_id'=>Auth::id(),

答案 2 :(得分:0)

您使用了$ user_id

return redirect()->route('dashboard', $user_id)->with('message', 'State saved correctly!!!');

比问:

if (!empty($id)) {

此$ id将始终为空,因此请使用:

<?php
if (!empty($user_id)) {
    Session::put('created_id', $user_id);
}
?>