Laravel $request->name 和 request('name') 有什么区别

Laravel what a diffrent betwenn $request->name and request('name')

我对 Request 有疑问,什么最好用?

$request->name 

request('name') 

有什么不同?

$request被称为依赖注入request()Illuminate\Http\Request 请求 class 的辅助函数。就像 Auth::user()auth()->user()(并非所有 类 都有辅助函数)。

没有最佳用途,因为它们具有相同的功能,用于处理来自客户端的请求。另一方面,您可以注入自定义表单请求 class 来封装验证过程,以防客户端提交表单。

像这样

public function store(StoreRequest $request) {
// Will process the request and return array. It will redirects to previous link if error happens
  $validated = $request->validated(); 
}

Docs

如果您使用专用请求 class 来验证您的输入,您可能需要使用注入的 $request 变量,否则您可以同时使用它们。

您可以在项目的任何地方使用请求助手,但是对于请求变量,您必须将其注入到您的函数中。

您最好使用请求变量来保持一致性,因为您很可能需要验证并且必须使用请求变量。