laravel如何验证是不是等于变量

Posted

技术标签:

【中文标题】laravel如何验证是不是等于变量【英文标题】: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',只是一个理解的例子 是的,我确实需要这个 【参考方案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 发送我的数据。解决了:。谢谢。投了赞成票

以上是关于laravel如何验证是不是等于变量的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.4 + Ajax 等于 401 未经身份验证

laravel 4.2 如何检查是不是有用户登录多重身份验证

Laravel 验证 - 如何检查给定数组中是不是存在值?

Laravel如何在自动重定向验证后发送参数以查看

如何检查用户是不是通过 Laravel 上的 cookie 会话进行身份验证?

如何验证是不是在laravel中选中了复选框?