假设,我在Laravel中有一个User模型,如下所示:
class User extends Eloquent implements UserInterface, RemindableInterface {
public static $rules = array(
'email' => 'required|email',
'password' => 'required|min:8|confirmed',
'password_confirmation' => 'required|min:8'
);
...
}
存储在模型中的规则将被重新用于登录和注册表单,但是在不需要密码确认(例如登录表单)时会出现问题。在很多情况下,应该更改规则。
那么,有没有一种纯粹的方法可以针对Laravel中的不同情况修改模型存储的验证规则?我是否必须重新组织规则存储方法?
谢谢!
您可以在需要时动态添加规则。
例如:
如果我是对的,则仅password_confirmation
在注册用户和更新密码时才需要该规则。因此,在您的模型中,请勿添加password_confirmation
规则。
public static $rules = array(
'email' => 'required|email',
'password' => 'required|min:8|confirmed'
}
如何动态添加规则:
要注册用户,password_confirmation
必填字段。因此,您始终可以从控制器添加如下规则:
$rules = User::$rules;
$rules['password_confirmation'] = 'required|min:8';
有时您可能需要根据用户输入添加规则。
例如:
如果用户选择Australia
作为国家,则他们还必须选择一个州。
$v = Validator::make($data, $rules ));
$v->sometimes('state', 'required', function($input)
{
return $input->country == 'Australia';
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句