【问题标题】:How to check for null in other field laravel FormRequest?如何在其他字段 laravel FormRequest 中检查 null?
【发布时间】:2020-11-21 02:07:17
【问题描述】:

当另一个字段具有值(非空)时,我试图排除一个字段被验证。在这种情况下,如果 product_pictures 是一个数组(非空),我希望排除“deleted_pictures”。我的问题是我认为exclude_unless:product_pictures,nullnull 评估为string,而不是null

这是我的规则。

ProductRequest.php

return [
    'product_pictures.*' => 'required_with:product_pictures|file|max:2048|mimes:jpeg,jpg,png',
    'product_pictures' => 'sometimes|array',
    'deleted_pictures' => ['exclude_unless:product_pictures,null', 'required', new cant_delete_all($max,'1')],
];
read : exclude deleted_pictures unless product_pictures has a value of 'null'

我尝试了这个来确认我的怀疑,它的工作原理应该是这样的。

//test_field = 'some_value'
return [
    'test_field' => 'required|string'
    'product_pictures.*' => 'required_with:product_pictures|file|max:2048|mimes:jpeg,jpg,png',
    'product_pictures' => 'sometimes|array',
    'deleted_pictures' => ['exclude_unless:test_field,some_value', 'required', new cant_delete_all($max,'1')],
];
read : exclude deleted_pictures unless test_field has a value of 'some_value'

在我的第一种情况下,deleted_pictures 被排除在外,因为它没有检测到 product_pictures 为“null”(字符串)

在第二种情况下,deleted_pictures 不被排除,因为 test_field 与给定值匹配。

我的问题是,你如何评估 FormRequest Laravel 中的 null 值?

【问题讨论】:

    标签: laravel laravel-validation laravel-formrequest


    【解决方案1】:

    显然,您可以将第二个参数留空以将其评估为 null

    return [
        'product_pictures.*' => 'required_with:product_pictures|file|max:2048|mimes:jpeg,jpg,png',
        'product_pictures' => 'sometimes|array',
        'deleted_pictures' => ['exclude_unless:product_pictures,', 'required', new cant_delete_all($max,'1')],
    ];
    

    我不确定这是它应该如何完成或预期的行为。但我只是要留下这个答案,以防万一有人需要它。如果有人可以建议“正确”的做法,那么我会接受。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 2020-07-14
      • 2020-08-22
      • 1970-01-01
      • 2016-07-22
      • 2012-05-19
      相关资源
      最近更新 更多