【问题标题】:laravel 5.4 How do I get current user through User model? and Auth::user() dosen't worklaravel 5.4 如何通过用户模型获取当前用户?并且 Auth::user() 不起作用
【发布时间】:2017-08-01 14:47:27
【问题描述】:

我正在尝试通过 User 模型获取当前用户,但它返回 null。

$user = new User;
//$user = Auth::user();
$product = new Product;

$product->user_id = $user->user_id;
$product->save();

这就是我得到的 Integrity constraint violation: 1048 Column 'user_id' cannot be null

当我尝试使用 Auth::user() 获取它时,它给出了同样的错误。

这是我的自定义登录控制器..

public function auth(Request $request)
{
    $this->validate($request, [
        'email' => 'required|email|max:255',
        'password' => 'required|min:6',
    ]);

    $data = $request->only('email', 'password');

    if (Auth::attempt($data)) {
        $email = $request->email;
         $users = DB::table('users')
            ->where('email', $email)
            ->select('users.*', 'user_name')
            ->get();

        Session::put('set', $users);

        if ($users[0]->is_admin == '1') {
            return redirect()->intended('adminDashboard');
        }else{
            return redirect()->intended('dashboard');
        }
    }else{
        return back()->withInput()->witherrors(['Email or password did not match!']);
    }
}

这段代码有什么问题?

【问题讨论】:

  • 请提供Login Controller代码。你做了很多不必要的事情
  • 问题中可以看到登录控制器。

标签: mysql laravel authentication model laravel-5.4


【解决方案1】:

请尝试:$product->user_id = Auth::id();

【讨论】:

  • 我已经登录了。这个控制器只有在你登录后才能访问。你可以看到更新的问题。
  • 如果您描述问题、提供解决方案并解释您的答案,这个答案可能会更完整。
【解决方案2】:

改变这一行:

$product->user_id = $user->user_id;

到这里:

$product->user_id = auth()->user()->id;

或者使用关系来创建产品:

auth()->user()->product()->create($productData);

【讨论】:

  • 错误:试图获取非对象的属性。
  • @ishanshah 你确定你已经登录了吗?当您登录时,dd(auth()->user()) 应该返回已登录的用户对象。
  • 试试auth()->user()->user_id
  • @AlexeyMezenin 是的,我已登录。但我想知道为什么它返回 null。如果用户未登录,则无法访问此控制器。
  • @NarendrasinghSisodia 也试过了。
【解决方案3】:

如果您获得当前用户详细信息而不是用户波纹管代码。

$loggedInUser = Auth::user();

在用户表中插入详细信息

$loggedInUser['data1'] = $data1;
$loggedInUser['data2'] = $data2;
$loggedInUser['data3'] = $data3;

保存用户详细信息

$loggedInUser->save();

【讨论】:

    猜你喜欢
    • 2018-12-17
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 2018-01-13
    • 2019-08-30
    • 2018-01-03
    • 2017-09-27
    • 2014-12-07
    相关资源
    最近更新 更多