Php Laravel将当前用户id传递给控制器

Php Laravel将当前用户id传递给控制器,php,laravel,laravel-6,Php,Laravel,Laravel 6,所以基本上我发送一个表单,在这个表单中我有3个字段。我需要另一个用户id字段。所以我决定通过后端完成,而不是用HTML,因为人们可以操作它 但每当我在events.store中dd($request)时,它都会显示以下内容: +query: ParameterBag {#59 ▼ #parameters: array:1 [▼ 1 => null ] } 这是对的,因为我有身份证1 为了证明这一点,我使用devtools来操作表单操作,并将自己的自定义值

所以基本上我发送一个表单,在这个表单中我有3个字段。我需要另一个用户id字段。所以我决定通过后端完成,而不是用HTML,因为人们可以操作它

但每当我在
events.store中
dd($request)
时,它都会显示以下内容:

+query: ParameterBag {#59 ▼
    #parameters: array:1 [▼
      1 => null
    ]
  }
这是对的,因为我有身份证1

为了证明这一点,我使用devtools来操作表单操作,并将自己的自定义值命名为“testing”。像这样:


如果您需要当前登录的用户,那么这比通过表单传递或在URL中手动传递要容易得多

您可以使用:

$request->id()

$request->user()->id

auth()->user()->id

auth()->id()
返回当前用户id,只需确保路由受
auth
保护,这意味着您使用
auth
中间件

--加成

我会在事件的用户模型中添加一个关系,我猜它是一对多的,因此:

public function events()
{
    return $this->hasMany(Event::class);
}
然后在控制器中,您可以按如下方式存储它:

Event::create(
    $request->validate([
        'name' => 'required',
        'description' => 'required',
        'event_date' => 'required'
    ])
);
'user_id' => $request->user_id
auth()->user()->events()->create($request->validate([
        'name' => 'required',
        'description' => 'required',
        'event_date' => 'required'
    ]));

您可以在控制器中使用auth()->user()->id!这是有效的,我想知道你是否可以帮助完成第二部分,我如何在使用
Task::create($request->validate([])
中填写
user\u id
字段。另外,它是受保护的。是的,非常有效。谢谢!第二部分也不起作用。但是
auth()->user()->events()->create
没有。我还是喜欢第一个。我无法测试,所以我将删除第二个,以免混淆其他人。
auth()->user()->events()->create($request->validate([
        'name' => 'required',
        'description' => 'required',
        'event_date' => 'required'
    ]));