自定义Laravel验证规则示例

时间:2016-07-12 03:13:05

标签: validation laravel-5

我很难弄清楚如何在Laravel 5.1中编写自定义验证规则。我读过documentation,但似乎不完整。仔细研究一下,我只是看不出我应该把我的实际验证逻辑放在哪里,例如if (stristr($string, 'test')) { ...等等。

另一方面,它没有显示错误消息定义的方法/数组:

"foo" => "Your input was invalid!",

"accepted" => "The :attribute must be accepted.",

// The rest of the validation error messages...

我的实际用例有点奇怪,所以对于这个问题,让我们使用验证安全密码的例子。安全密码长度必须至少为8个字符,包含小写和大写字母,数字和特殊字符。

实际上,这是一个非常高的例子,那么如何检查一个数字呢?或者在值上运行任何字符串函数?

如何创建这样的验证规则?

1 个答案:

答案 0 :(得分:-1)

正如document you've linked中所述,您需要使用static {{boot将{* 1}}函数放入ServiceProvider的{​​{1}}函数中(例如AppServiceProvider)。 1}}方法。

这是一个简短的例子(与文档中的示例相关联)。

extend

用户的输入分配到<?php namespace App\Providers; use Validator; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { public function boot() { Validator::extend('yourFunctionNameHere', function($attribute, $value, $parameters, $validator) { return $value == 'yourTestValueHere'; //change the body as you need it }); } }