gpt4 book ai didi

php - 如何仅从 laravel FormRequest 获取经过验证的数据?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:54:47 25 4
gpt4 key购买 nike

假设我有以下自定义请求:

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',
];
}
}

当我从 Controller 访问它时,如果我这样做 $request->all() ,它为我提供了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
];
}

如何在不手动执行 $request->only('name','monthly_fee', etc...) 的情况下 验证数据?

最佳答案

$request->validated()将仅返回经过验证的数据。

示例:

public function store(Request $request)
{
$request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);

$validatedData = $request->validated();

}

备选方案:

$request->validate([rules...]) 如果验证通过,则返回唯一经过验证的数据。

示例:

public function store(Request $request)
{

$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);

}

关于php - 如何仅从 laravel FormRequest 获取经过验证的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47936337/

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