Laravel 5.3验证正则表达式检查True或False失败

时间:2016-11-07 13:16:43

标签: regex laravel validation laravel-5.3 laravel-validation

在Laravel 5.1中,我曾经使用Regex Match进行验证检查以查看发布的值是设置为true还是false。发布的值是这样的:

acceptTerms   true

然后我检查Laravel验证中的值,如下所示:

$validator = Validator::make($postData, [
  'acceptTerms'   => ["regex:(true|false)"],
]);

自从更新到Laravel 5.3后,上述验证规则失败并始终抛出错误:acceptTerms format is invalid.

为什么会失败,如何检查Laravel 5.3中的值是true还是false

编辑1:

我忘记添加,发布的数据以JSON.stringify(data)发送,在Laravel中我收到Input::json('data')。这会改变什么吗?

编辑2:

dd($postData)会返回此信息:

array:31 [
  "id" => "8"
  "appId" => "1"
  "name" => "Asdsad"
  "acceptTerms" => true
  ]

2 个答案:

答案 0 :(得分:2)

如果是布尔值,您可以使用boolean

我猜它比regex更具可读性。

  

验证字段必须能够作为布尔值进行转换。接受的输入为true,false,1,0,“1”和“0”。

答案 1 :(得分:1)

您可以使用in()尝试此操作:

'acceptTerms'   => 'in:true,false',