自从将laravel从5.1升级到5.3以来,我在验证方面遇到了一些奇怪的问题.

When I post a data like this:

firstName    null

验证规则如下:

$validator = Validator::make($postData, [
              'firstName'           => 'string|max:255',
              'lastName'            => 'string|max:255'
            ]);

上面的失败消息大约为"The XYZ must be a string."条.我不明白的是:

  1. 当验证未设置为required时,为什么会失败?

  2. 如果值设置为null,为什么验证失败?

  3. 当参数根本没有发送时,为什么验证会失败?

Laravel 5.3验证中有什么变化吗?

推荐答案

Add nullable rule:

'firstName' => 'string|max:255|nullable',
'lastName' => 'string|max:255|nullable'

正在验证的字段可能是null.这在验证可以包含null个值的基元(如字符串和整数)时特别有用.

Laravel相关问答推荐

Nginx上带有SSL的Laravel混响

laravel错误更新使用外键的数据库

无法找到用户sail:passwd 文件中没有匹配的条目

Laravel Eloquent 查找日期超过 2 天的行

使用 Eloquent 的 Laravel 块方法

laravel 5 中的登录事件处理

在表单中添加一对多 - Backpack laravel

SQLSTATE [42000]:语法错误或访问冲突:1066 Not unique table/alias on relationship

CRON 作业(job) - LARAVEL - 输出

php Laravel-遇到格式不正确的数值(在字符串上)

Database[] 未配置 Laravel 5

如何在包中安排 Artisan 命令?

Laravel 和 PHPStorm 项目的 gitignore 中包含什么?

Laravel 5 环境配置数组?

laravel:Eloquent的例子将数据插入数据库

找不到框laravel/homestead

如何在 Laravel 中使用补丁请求?

在 laravel 中安装 vue 3.0

Laravel 分页漂亮的 URL

Laravel 手动登录功能