首页 > 解决方案 > Laravel 6如何将登录用户的ID存储在控制器中

问题描述

我正在尝试存储已登录用户的 ID,但出现此错误

ErrorException
array_map(): Argument #2 should be an array

这是控制器中的代码

    public function store(Request $request)
    {
        if (!auth()->check()) {
            abort(403, 'Only authenticated users can create new posts.');
        }

        $data = request()->validate([
            'id' => $id  = Auth::id(),
            'content' => 'required',
            'topic' => 'required',
            'hashtag' => 'required'
            ]);

            $check = Tweets::create($data);
            return Redirect::to("form")->withSuccess('Great! Form successfully submit with validation.');
    }

错误在这行代码中。

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

我知道这应该是一个字符串,但要向您解释我正在尝试做什么,但我仍然没有找到任何解决方案。

标签: laravellaravel-6laravel-authenticationlaravel-6.2laravel-controller

解决方案


删除这个

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

并添加

$data['id'] = Auth::id();

$check = Tweets::create($data);

那应该工作


推荐阅读