我有一个窗体中的字段只有在设置了其他两个字段时才是必需的。这不是required_with_all的情况。如果它们被设置,那么它不是它的,如果它们是专门设置的。如何编写和使用自定义的Laravel 5验证器来验证多个其他字段值
实施例:'富'=> 'required_if_all:巴,2,蝙蝠,1',
我添加了一个服务提供者:
<?php namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Validator;
class RequiredIfAllProvider extends ServiceProvider {
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
Validator::extend('required_if_all', function($attribute,$value,$parameters){
// Is required if the list of key/value pairs are matching
$pairs = [];
foreach($parameters as $kp => $vp) $pairs[$kp] = $vp;
foreach($pairs as $kp => $vp) if(\Request::input($kp) != $vp) return false;
return true;
});
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
}
我确保使用的App\Providers\RequiredIfAllProvider
;在我的自定义请求文件的顶部。
如果bar和bat均基于基于验证的参数进行设置,则应在错误包中添加新的错误。
我在这方面花了不少。有任何想法吗?
只要看看登录控制器。 laravel 5起,我认为他们把auth转移到了'特性',只是在那里添加了你需要的值。 – Gokigooooks
这和登录或认证没有任何关系。目标是一个网站范围的可用验证规则。 –
对不起,我很在意验证。无论如何,在laravel 5.1中,您可以使用特征将独特的一组函数和变量应用于控制器。你可以在那里添加你的验证,所以你可以在任何地方注入 – Gokigooooks