Php Laravel:模型内的验证。多个验证规则
如何将多个验证规则添加到模型中 我已经创建了一个BaseModel,其中BaseModel扩展得很有说服力。 我的其他模型扩展了BaseModel 模型/基本模型Php Laravel:模型内的验证。多个验证规则,php,validation,laravel,model,Php,Validation,Laravel,Model,如何将多个验证规则添加到模型中 我已经创建了一个BaseModel,其中BaseModel扩展得很有说服力。 我的其他模型扩展了BaseModel 模型/基本模型 class BaseModel extends Eloquent { public $errors; public function validate($data) { $validation = Validator::make($data, static::$rules); if($validation-&g
class BaseModel extends Eloquent {
public $errors;
public function validate($data) {
$validation = Validator::make($data, static::$rules);
if($validation->passes()) {
return true;
}
$this->errors = $validation->messages();
return false;
}
public function validate($data, $rules) {
}
模型/用户
protected static $rules = [
'email_address' => "required|email|unique:users,email_address",
'first_name' => "required",
'last_name' => "required",
'password' => "required|min:6|same:confirm_password",
'confirm_password' => "required:min:6|same:password",
];
上述规则适用于注册页面
现在,我的登录页面也将浏览用户模型
它应该验证电子邮件地址和密码
是否可以向模型添加多个验证规则
我确信我可以让$rules成为一个变量,它通过了验证函数,但看起来并不干净。
乙二醇
模型/基本模型
class BaseModel extends Eloquent {
public $errors;
public function validate($data) {
$validation = Validator::make($data, static::$rules);
if($validation->passes()) {
return true;
}
$this->errors = $validation->messages();
return false;
}
public function validate($data, $rules) {
我通过将
$rules
存储在我的models方法中解决了这个问题。在本例中,我正在验证用户更新。我使用这个类中的validate类方法。事情可以组织得更好,但我正在努力
这是我的EloquentUserRepository
或User
模型中的代码,但我使用存储库
雄辩的陈述:
public function update($user) {
$rules = array(
"email" => "required|email",
"userrole" => "required"
)
if($this->validate(Input::all(), $rules)) {
$user->save();
return true;
} else {
return false;
}
}
private function validate($data, $rules) {
$validator = Validator::make($data, $rules);
if($validator->passes()) {
return true;
} else {
$this->errors = $validator->errors();
return false;
}
}
public function errors() {
return $this->errors()->all();
}
这非常有效,可以保持我的控制器干净,并在有意义的地方显示我的验证规则。也许您可以尝试各种类型的验证功能
例如:$User->validateUpdate然后在用户模型中
private function validateUpdate($data){
$validator = Validator::make($data, $this->updateRules);
if($validator->passes()) {
return true;
} else {
$this->errors = $validator->errors();
return false;
}
}
public function errors() {
return $this->errors()->all();
}
登录时进行验证不是一项模型作业。把这件事留给其他人去做,因为模型应该只负责(若你们愿意的话)创建一个新记录。验证登录凭据是另一回事,实际上您根本不需要验证。除非有你想分享的原因?我不是在验证登录,我在尝试有多个验证规则。