【问题标题】:unusual error occur in laravel validationlaravel 验证出现异常错误
【发布时间】:2014-12-10 06:37:29
【问题描述】:

在我的 laravel 4 项目中,我给出了这样的验证

'contact_no' => 'numeric|digits_between:10,10',

但这在奇怪的情况下显示错误。如果我将电话号码复制并粘贴到字段中,则会显示验证错误"The contact no must be a number." 但是当我输入电话号码时,一切都很好。

有人知道为什么 laravel 会出现这种错误吗?以及如何解决这个问题? 屏幕截图是:

【问题讨论】:

  • 我认为这是由于字符串之间的空间问题。请检查
  • no.. 我检查了数字之前或之后或之间没有空格的字段。

标签: validation laravel


【解决方案1】:

如果您从不是纯文本(而是格式化文本)的源中复制字符串,有时会随字符串一起复制不可见的空格。我有好几次这种奇怪的行为。

你如何测试它

  • 打开记事本(或任何纯文本编辑器)
  • 输入您的电话号码
  • 从那里复制它
  • 将其粘贴到您的表单中

我想这个数字会起作用。

如何解决这个问题

在验证trim 之前来自contact_no 的输入数据首先删除所有空格。见http://php.net/manual/en/function.trim.php

【讨论】:

  • 我应该像这样Validator::make(array_map('trim',Input::all()), $rules,$messages); 吗??
  • 我猜这会修剪你所有的输入字段。我会尝试只修剪contact_no 字段,因为如果您有其他输入字段(比如说文本),它们的空格也会被删除。这是第一个答案中的示例:stackoverflow.com/questions/22399326/…
  • 好的,我在验证之前给了这个Input::merge(array_map('trim', Input::only('contact_no')));,然后是Validator::make(Input::all(), $rules,$messages)。这是正确的吗??
猜你喜欢
  • 2014-05-03
  • 2017-05-17
  • 2016-03-08
  • 2023-04-03
  • 1970-01-01
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
  • 2018-04-23
相关资源
最近更新 更多