我有一个名为“name”的输入验证器:
Regex:/^[A-Za-z0-9\\s\\-\\/,.]*$/|min:5|max:50
但是,我想在我的网站中以多种形式使用此验证器。 如果不在所有表单验证中复制此验证器,我该怎么做?
我的数据库包含名为“settings”的表,每一行都显示网站的设置。每个设置都包含保存设置数据的Json代码。 我想创建自定义验证器,检查输入值是否等于我的数据库中的Json代码中的一个值。 我有这样的Json代码:
[{"US":"United States", "UK":"United Kingdom"}]
我想检查输入的值是否等于Json代码中的一个值。我怎么能这样做?
答案 0 :(得分:1)
我知道你说过,在你的网站上。但是,我认为您确保使用相同验证器的表单的使用相对处于相同的状态。 这是一个帮助我到达我需要的地方的例子!我希望它是一个足够好的指南!:
MessageBag文档:http://laravel.com/docs/5.0/validation#error-messages-and-views
公共职能postLogin(请求$请求)
public function postLogin(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => 'required|email', 'password' => 'required',
]);
if ($validator->fails())
{
return redirect($this->loginPath())->withErrors($validator, 'loginErrors');
}
$credentials = $this->getCredentials($request);
if (Auth::attempt($credentials, $request->has('remember'))) {
return redirect()->intended($this->redirectPath());
}
return redirect($this->loginPath())
->withInput($request->only('email', 'remember'))
->withErrors([
'email' => $this->getFailedLoginMessage(),
], 'loginErrors');
}
现在您可以查看视图中的错误:
@if (!$errors->loginErrors->isEmpty())
<div class="form_error_login">
<strong>Whoops!</strong> There were some problems with your input.<br> <br>
<ul>
@foreach ($errors->loginErrors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
对于模态(如果使用它们):
<script>
$findError = $('div').find ('div');
if ( $findError.hasClass('form_error_login')){
$('#modalLogin').foundation('reveal', 'open');
}
if ( $findError.hasClass('form_error_register')){
$('#modalRegister').foundation('reveal', 'open');
}
</script>
<强>参考:强>
https://laracasts.com/discuss/channels/laravel/authcontroller-loginregistration-on-same-page