Laravel 数组验证
Laravel validation for arrays
我有这个要求:
GET http://example.com/test?q[]=1&q[]=2&q[]=3
我有这条路线:
Route::get('test', function(Request $req) {
$req->validate(['q' => 'array']);
});
如何使用 Laravel 验证器向该数组的每个元素添加其他验证规则?例如,我想检查每个 q
值是否至少为 2.
感谢您的帮助。
你可以这样做:
Route::get('test', function(Request $req) {
$req->validate([
'q' => 'array',
'q.*' => 'min:2'
]);
});
有关数组验证的详细信息,请参阅 => laravel.com/docs/5.6/validation#validating-arrays
查看有关 validating arrays 的文档。
$validator = Validator::make($request->all(), [
'person.*.email' => 'email|unique:users',
'person.*.first_name' => 'required_with:person.*.last_name',
]);
您也可以在控制器中使用 Request 对象执行此操作,documentation about validation logic。
public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
// The blog post is valid...
}
当您有很多验证规则并希望在应用程序中分离逻辑时,还有第三种选择。看看Form Requests
1) 创建表单请求 Class
php artisan make:request StoreBlogPost
2) 添加规则到 Class,创建于 app/Http/Requestsdirectory。
public function rules()
{
return [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
];
}
3) 在您的控制器中检索请求,它已经过验证。
public function store(StoreBlogPost $request)
{
// The incoming request is valid...
// Retrieve the validated input data...
$validated = $request->validated();
}
假设我有一组用户
users: [
{
"id": 1,
"name": "Jack",
},
{
"id": 2,
"name": "Jon"
}
]
我会像下面这样验证它:
$request->validate([
'users[*]'=> [
"id" => ["integer", "required"],
"name" => ["string", "required"]
]
]);
此处 * 充当占位符
我有这个要求:
GET http://example.com/test?q[]=1&q[]=2&q[]=3
我有这条路线:
Route::get('test', function(Request $req) {
$req->validate(['q' => 'array']);
});
如何使用 Laravel 验证器向该数组的每个元素添加其他验证规则?例如,我想检查每个 q
值是否至少为 2.
感谢您的帮助。
你可以这样做:
Route::get('test', function(Request $req) {
$req->validate([
'q' => 'array',
'q.*' => 'min:2'
]);
});
有关数组验证的详细信息,请参阅 => laravel.com/docs/5.6/validation#validating-arrays
查看有关 validating arrays 的文档。
$validator = Validator::make($request->all(), [
'person.*.email' => 'email|unique:users',
'person.*.first_name' => 'required_with:person.*.last_name',
]);
您也可以在控制器中使用 Request 对象执行此操作,documentation about validation logic。
public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
// The blog post is valid...
}
当您有很多验证规则并希望在应用程序中分离逻辑时,还有第三种选择。看看Form Requests
1) 创建表单请求 Class
php artisan make:request StoreBlogPost
2) 添加规则到 Class,创建于 app/Http/Requestsdirectory。
public function rules()
{
return [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
];
}
3) 在您的控制器中检索请求,它已经过验证。
public function store(StoreBlogPost $request)
{
// The incoming request is valid...
// Retrieve the validated input data...
$validated = $request->validated();
}
假设我有一组用户
users: [
{
"id": 1,
"name": "Jack",
},
{
"id": 2,
"name": "Jon"
}
]
我会像下面这样验证它:
$request->validate([
'users[*]'=> [
"id" => ["integer", "required"],
"name" => ["string", "required"]
]
]);
此处 * 充当占位符