我想将此代码移至App \ Rule:
//Currently in class AppServiceProvider extends ServiceProvider
Validator::extend('empty_if', function ($attribute, $value, $parameters, $validator) {
return ($value != '' && request($parameters[0]) != '') ? false : true;
});
Run Code Online (Sandbox Code Playgroud)
因此应该是这样的:
//in: App\Rules\EmptyIf
public function passes($attribute, $value, $parameters)
{
return ($value != '' && request($parameters[0]) != '') ? false : true;
}
Run Code Online (Sandbox Code Playgroud)
但是我的问题是,我不能通过$参数
Validator::extend('empty_if', 'App\Rules\EmptyIf@passes');
Run Code Online (Sandbox Code Playgroud)
您如何将参数传递给Laravel Rule?
有一篇很长的文章,我只想删除thousand separator,而不是逗号.
$str = "Last month's income is 1,022 yuan, not too bad.";
//=>Last month's income is 1022 yuan, not too bad.
preg_replace('#(\d)\,(\d)#i','???',$str);
Run Code Online (Sandbox Code Playgroud)
如何编写正则表达式模式?谢谢
我在Laravel 4.2上玩耍.我试图使用验证器来验证带有正则表达式的名称字段,这是我的规则如下:
public static $rules_save = [
'name' => 'required|regex:/[XI0-9/]+/|unique:classes'
];
Run Code Online (Sandbox Code Playgroud)
但是一旦我调用规则进行验证就会抛出错误,请参见下文:
preg_match(): Unknown modifier ']'
Run Code Online (Sandbox Code Playgroud)
在以下位置:
protected function validateRegex($attribute, $value, $parameters)
{
$this->requireParameterCount(1, $parameters, 'regex');
return preg_match($parameters[0], $value); // **ON THIS LINE**
}
Run Code Online (Sandbox Code Playgroud)