我使用laravel 5.6
我使用https://laravel.com/docs/5.6/validation#form-request-validation验证服务器端
我的控制器是这样的:
setvbuf(stderr, NULL, _IOLBF, BUFSIZ); // make stderr line buffered
在update方法中运行语句之前,它会将UserUpdateRequest调用到验证服务器端
验证如下:
<?php
....
use App\Http\Requests\UserUpdateRequest;
class UserController extends Controller
{
...
public function update(UserUpdateRequest $request)
{
// dd($request->all());
}
}
dd的结果($ this-&gt; request-&gt; all());像这样:
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UserUpdateRequest extends FormRequest
{
....
public function rules()
{
dd($this->request->all());
return [
'name' => 'required|max:50',
'gender' => 'required',
'birth_date' => 'required',
'address' => 'required',
'status' => 'required'
];
}
}
如何验证数据是否是这样的对象数组?
答案 0 :(得分:1)
您可以使用点符号:
public function rules()
{
return [
'selected_data.name' => 'required|max:50',
'selected_data.gender' => 'required',
'selected_data.birth_date' => 'required',
'selected_data.address' => 'required',
'selected_data.status' => 'required',
];
}
在此处详细了解:Validating Array。
希望这有帮助。
答案 1 :(得分:0)
我将添加*,因为如果您传递多个对象,则需要验证所有对象。
像这样:
public function rules()
{
return [
'selected_data.*.name' => 'required|max:50',
'selected_data.*.gender' => 'required',
'selected_data.*.birth_date' => 'required',
'selected_data.*.address' => 'required',
'selected_data.*.status' => 'required',
];
}