【问题标题】:Validating Matching Strings验证匹配字符串
【发布时间】:2015-10-05 00:19:03
【问题描述】:

当我在 Laravel 中使用 Validation 功能时,如何添加允许在 Input 中使用的预定义字符串?

例如,假设我希望 Input 仅包含以下内容之一:foo,bar,baz,我该怎么做?

$validator = Validator::make($credentials, [
      'profile' => 'required|max:255', // Here I want Predefined allowed values for it
]);

【问题讨论】:

  • 您是否尝试过对要匹配的单词在字段上进行正则表达式匹配?
  • 现在我正在使用 php in_array 手动检查并抛出异常,并且没有尝试过 laravel 验证正则表达式。你能提供一个样本吗?

标签: laravel laravel-5 laravel-validation


【解决方案1】:

最好像这样使用“in”验证规则:

$validator = Validator::make($credentials, [
      'profile' => ["required" , "max:255", "in:foo,bar,baz"]  
]);

【讨论】:

    【解决方案2】:

    在 Laravel 文档中建议在验证规则变大时将其放入数组中,我认为 3 条规则就足够了。我认为它使内容更具可读性,但您不必这样做。我在下面添加了regex 部分,我让它工作了。我对正则表达式的东西不是很好。告诉我。

    $validator = Validator::make($credentials, [
          'profile' => ["required" , "max:255", "regex:(foo|bar|baz)"]  
    ]);
    

    【讨论】:

    • 完美!那行得通!当输入与正则表达式不匹配时,它会抛出异常The profile format is invalid。我还删除了"max:255",因为无论如何我都将它与正则表达式匹配。非常感谢@ODelibalta 这正是我想要的! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多