Jon*_*oso 4 php validation request-validation laravel
假设我有以下自定义请求:
class PlanRequest extends FormRequest
{
// ...
public function rules()
{
return
[
'name' => 'required|string|min:3|max:191',
'monthly_fee' => 'required|numeric|min:0',
'transaction_fee' => 'required|numeric|min:0',
'processing_fee' => 'required|numeric|min:0|max:100',
'annual_fee' => 'required|numeric|min:0',
'setup_fee' => 'required|numeric|min:0',
'organization_id' => 'exists:organizations,id',
];
}
}
Run Code Online (Sandbox Code Playgroud)
当我从控制器访问它时,如果我这样做$request->all(),它会给我所有数据,包括不想传递的额外垃圾数据.
public function store(PlanRequest $request)
{
dd($request->all());
// This returns
[
'name' => 'value',
'monthly_fee' => '1.23',
'transaction_fee' => '1.23',
'processing_fee' => '1.23',
'annual_fee' => '1.23',
'setup_fee' => '1.23',
'organization_id' => null,
'foo' => 'bar', // This is not supposed to show up
];
}
Run Code Online (Sandbox Code Playgroud)
我如何获得唯一经过验证的数据,而无需手动干什么$request->only('name','monthly_fee', etc...)?
Sap*_*aik 12
$request->validated() 将仅返回经过验证的数据.
在您的商店方法中:
public function store(PlanRequest $request)
{
$data = $request->validated();
}
Run Code Online (Sandbox Code Playgroud)
OK ......我花了时间后出键入这个问题,我想我会检查laravel"API"文档:https://laravel.com/api/5.5/Illuminate/Foundation/Http/FormRequest.html
看起来我可以使用$request->validated().希望他们在验证文档中说出这一点.它使我的控制器动作看起来很漂亮:
public function store(PlanRequest $request)
{
return response()->json(['plan' => Plan::create($request->validated())]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4190 次 |
| 最近记录: |