【问题标题】:laravel how to validate as equal to a variablelaravel如何验证是否等于变量
【发布时间】:2018-01-27 12:02:25
【问题描述】:

在 laravel 验证(注册)中,我想将其中一个字段与 php 变量进行比较(它应该与那个相同)

我该怎么做?

protected function validator(array $data)
{

    return Validator::make($data, [
        'name' => 'required|max:255',
        'phone' => 'required|min:10|max:11|unique:users',
        'email' => 'required|email|max:255',
        'password' => 'required',
        'password_confirmation' => 'required',
        'user_captcha' => 'required'
    ]);
}

【问题讨论】:

  • 你的意思是这样的? 'name' => 'equalto:$varable',只是一个理解的例子
  • 是的,我确实需要这个

标签: laravel validation laravel-5 laravel-5.4 laravel-validation


【解决方案1】:

例如,您可以对这样的名称字段执行此操作:

$variable = "something"
return Validator::make($data, [
    'name' => [
        'required',
        Rule::in([$variable]),
    ],
    'phone' => 'required|min:10|max:11|unique:users',
    'email' => 'required|email|max:255',
    'password' => 'required',
    'password_confirmation' => 'required',
    'user_captcha' => 'required'
]);

记得导入规则类(使用 Illuminate\Validation\Rule;)

您可以通过以下方式获取更多信息:https://laravel.com/docs/5.4/validation#rule-in

编辑

根据@patricus 的建议,您还可以连接变量

$variable = "something"
return Validator::make($data, [
    'name' => 'required|in:'.$variable,
    'phone' => 'required|min:10|max:11|unique:users',
    'email' => 'required|email|max:255',
    'password' => 'required',
    'password_confirmation' => 'required',
    'user_captcha' => 'required'
]);

EDIT2

如果你有一个数组变量:

$variable = ['one','two'];
return Validator::make($data, [
    'name' => 'required|in:'.implode(",", $variable),
    'phone' => 'required|min:10|max:11|unique:users',
    'email' => 'required|email|max:255',
    'password' => 'required',
    'password_confirmation' => 'required',
    'user_captcha' => 'required'
]);

或者

$variable = ['one','two']
return Validator::make($data, [
    'name' => [
        'required',
        Rule::in($variable),
    ],
    'phone' => 'required|min:10|max:11|unique:users',
    'email' => 'required|email|max:255',
    'password' => 'required',
    'password_confirmation' => 'required',
    'user_captcha' => 'required'
]);

【讨论】:

  • 考虑到变量的简单使用,这样做可能看起来更好:'name' => 'required|in:'.$variable,
  • @leonardo 和 patricus 我的字段是验证码我测试你的两种方式,我会正确填写整个表格,但我只有一个错误:user_captcha:[“validation.required”]
  • 请打印 $data 变量
  • 没关系。它是一个数组,一切都是正确的。只是验证码验证(in:) 不工作(只需要工作)
  • 问题来自于从表单和 ajax 发送我的数据。解决了:。谢谢。投了赞成票
猜你喜欢
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 2019-11-17
  • 2018-10-06
  • 1970-01-01
相关资源
最近更新 更多