如何使用验证laravel验证对象字符串?

时间:2018-03-14 14:23:56

标签: laravel validation request required laravel-5.6

我使用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'
        ];
    }
}

如何验证数据是否是这样的对象数组?

2 个答案:

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