Laravel |验证数据丢失

时间:2019-05-25 17:00:01

标签: php laravel lumen

在蛇的情况下,我试图自定义laravel验证以返回传入的密钥,因此我可以使用这些值插入模型,而无需执行以下操作:

User::query()->create([
    'email_address' => $data['emailAddress']
]);

我找到了执行此操作并从$this->validate方法返回数据的方法。

我已经更改了方法,因此它以蛇形格式返回:

protected function extractInputFromRules(Request $request, array $rules)
{
    return $request->only(collect($rules)->keys()->map(function ($rule) {
        return Str::contains($rule, '.') ? Str::snake(explode('.', $rule)[0]) : Str::snake($rule);
    })->unique()->toArray());
}

如您所见,我在字面上添加了Str::snake($rule)

自从我添加了此内容之后,在端点上我只发送带有主体的请求

{
    "emailAddress": "example@domain.com"
}

数据以[]的形式返回。

如果我在dd方法中执行了extractFromInput,我可以看到它已经正确地转换成蛇形了,所以emailAddress变成了email_address,但是就像我说的较早的数组不能正确返回,因为它为空。

public function resetPassword(Request $request)
{
    $data = $this->validate($request, [
        'emailAddress' => ['required', 'email']
    ]);

    dd($data);
}

0 个答案:

没有答案