我要验证一个.json文件。
在控制器中:
public function import(ImportPost $request)
{
ProcessImport::dispatch($request->validated());
return redirect()->back();
}
ImportPost 文件本身包含以下代码
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ImportPost extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'file' => 'required|file|max:10000',
];
}
}
文件本身使用以下方法解析:
json_decode(File::get($request->file('file')), true);
那么,我怎样才能解析这个文件并在以后验证它呢?
也就是说,最初这是一个file.json文件,我想按重量检查它,并根据其中包含的其他字段检查它的内容。
我假设能够创建两个验证器并首先检查文件本身,然后检查其内容。这种方法正确吗?
当要检查的字段不仅位于请求中,而且是动态形成的,或者它们必须永久存在时,验证选项。
Laravel - ^6.2
PHP - ^7.2
您需要使用withValidator() 钩子;这个钩子是什么?
Validator 类包含在文件的开头:
至于验证器本身,在下面的第 8 行,我在那里明确指出了所有内容。
通过使用
\Illuminate\Support\Facades\Validator最后,我调用了 validate() 方法;遵守规则。
我不完全确定这是否正确,但我没有找到必要的官方文档,所以下面的乡巴佬代码有一个地方。
完整的文件如下所示:
底线 - 我的问题用withValidator();解决了