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 如何检查是不是有用户登录多重身份验证