【问题标题】:How do you validate a laravel json object request in laravel 5.5您如何在 laravel 5.5 中验证 laravel json 对象请求
【发布时间】:2019-12-03 14:10:39
【问题描述】:

如何验证一个laravel请求对象,我有这个条件

request()->validate([
                'avatar' => 'required|image',
                'display_name' => 'required|min:3|max:100',
                'role_id'      => 'required|integer',
                'username' => 'required|unique:users|min:4|max:15',
                'email'        => 'required|email|unique:users',
                'phone_number' => 'required|min:3',
                'password'     => 'required|min:6',
                'country_id' => 'required|integer'
]);

但在我的请求中,它以对象形式存储,我应该怎么做才能使验证工作?

【问题讨论】:

    标签: php laravel laravel-validation


    【解决方案1】:

    您验证它的方式与验证多维数组的方式相同:

    request()->validate([
        'form.avatar' => 'required|image',
        'form.display_name' => 'required|min:3|max:100',
        'form.role_id'      => 'required|integer',
        'form.username' => 'required|unique:users|min:4|max:15',
        'form.email'        => 'required|email|unique:users',
        'form.phone_number' => 'required|min:3',
        'form.password'     => 'required|min:6',
        'form.country_id' => 'required|integer'
    ]);
    

    如果你的表单是一个对象数组,你可以使用通配符

    request()->validate([
        'form.*.avatar' => 'required|image',
        'form.*.display_name' => 'required|min:3|max:100',
        'form.*.role_id'      => 'required|integer',
        'form.*.username' => 'required|unique:users|min:4|max:15',
        'form.*.email'        => 'required|email|unique:users',
        'form.*.phone_number' => 'required|min:3',
        'form.*.password'     => 'required|min:6',
        'form.*.country_id' => 'required|integer'
    ]);
    

    【讨论】:

    • 嘿,我在 laravel 5.5
    • 嵌套属性验证从 Laravel 5.2 开始有效,所以你应该没问题laravel.com/docs/5.5/…
    • 但是先生,我明白了 :) message: "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'form.username' in 'where clause' (SQL: select count(*) as aggregate from users` where form.username = chandler40)" `
    【解决方案2】:

    对于唯一验证,您可以传递需要对其应用验证的字段名称,默认情况下它采用键名称。

    您可以将其用于对象数据的唯一验证:-

    'form.username' => 'required|unique:users,username|min:4|max:15'
    

    【讨论】:

      猜你喜欢
      • 2018-09-15
      • 2018-09-13
      • 2019-08-31
      • 2020-07-13
      • 2021-06-28
      • 2016-08-10
      • 2019-06-22
      • 2017-10-15
      • 2018-06-16
      相关资源
      最近更新 更多