我很难弄清楚如何在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个字符,包含小写和大写字母,数字和特殊字符。
实际上,这是一个非常高的例子,那么如何检查一个数字呢?或者在值上运行任何字符串函数?
如何创建这样的验证规则?
答案 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
});
}
}