📅  最后修改于: 2023-12-03 15:32:33.700000             🧑  作者: Mango
Laravel 提供了方便的 all()
方法,可以一次性返回所有请求数据。但是有时候我们需要排除部分输入的数据,这时候可以使用 except()
方法。
$request->except(['key1', 'key2']);
except()
方法接受一个包含键名数组的参数,这些键名对应的请求数据将会被排除。
如果我们有一个 POST 请求,请求数据如下:
POST /user HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
name=John&email=john@example.com&password=secret&password_confirmation=secret
使用以下代码可以获取所有请求数据:
$data = $request->all();
获取的数据如下:
array:4 [
"name" => "John"
"email" => "john@example.com"
"password" => "secret"
"password_confirmation" => "secret"
]
现在,我们想排除 password_confirmation
数据,只获取其他数据,可以使用以下代码:
$data = $request->except(['password_confirmation']);
获取的数据如下:
array:3 [
"name" => "John"
"email" => "john@example.com"
"password" => "secret"
]
except()
方法可以方便地从请求数据中排除特定的数据。在处理表单提交等数据时,尤其有用。