Laravel 5.3 正确或错误的验证正则表达式检查失败

Laravel 5.3 Validation Regex check for True or False fails

在 Laravel 5.1 中,我曾经使用正则表达式匹配进行验证检查,以查看发布的值是否设置为 truefalse。发布的值是这样的:

acceptTerms   true

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

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

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

为什么会失败?如何检查 Laravel 5.3 中的值是否设置为 truefalse

编辑 1:

我忘了补充,发布的数据以 JSON.stringify(data) 形式发送,在 Laravel 中我以 Input::json('data') 形式接收。这会改变什么吗?

编辑 2:

dd($postData) returns 这个:

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

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

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

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

我想它比 regex.

更具可读性

The field under validation must be able to be cast as a boolean. Accepted input are true, false, 1, 0, "1", and "0".