gpt4 book ai didi

php - Laravel 将当前用户 ID 传递给 Controller

转载 作者:行者123 更新时间:2023-12-04 20:55:35 26 4
gpt4 key购买 nike

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

<form action="{{ route('events.store', Auth::user() ) }}" method="post">

但每当我 dd($request)events.store它向我展示了这一点:

+query: ParameterBag {#59 ▼
#parameters: array:1 [▼
1 => null
]
}

这是正确的,因为我有 id 1。

为了证明这一点,我使用开发工具来操作表单操作,并放置一个我自己命名的“testing”自定义值。像这样:

<form action="http://192.168.1.14/public/calendar?testing" method="post"">

这将输出

+query: ParameterBag {#59 ▼
#parameters: array:1 [▼
"testing" => null
]
}

如何获取 ID?我怎样才能使它不可操纵?

问题2,如何使用该字段来存储它?我这样做是这样的:

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

我希望它可能是这样的:

'user_id' => $request->user_id

并且还需要它

感谢您的帮助

最佳答案

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

您可以使用:

$request->id()

$request->user()->id

auth()->user()->id

auth()->id()

全部返回当前用户 ID,只需确保您的路由受到 auth 保护,这意味着您使用 auth 中间件。

-- 添加

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

public function events()
{
return $this->hasMany(Event::class);
}

然后在你的 Controller 中,你可以像这样存储它:

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

关于php - Laravel 将当前用户 ID 传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58012808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com