我正在与Laravel合作,在示例中似乎他们决定在控制器内部实现验证,而我一点也不喜欢它。我想问的是,是否有某种bind方法可以将posted输入字段绑定到我创建的对象,这样我就可以确保我的控制器不会混乱。
我会试着在代码中解释我想要什么,我想它会更清楚。
我所拥有的
public function postRegister() {
$validation = Validator::make(Input::all(), array(
'email' => 'required|email',
'password' => 'required|min:6',
'name' => 'required|alpha',
'gender' => 'required|in:male,female'
));
if ($validation->fails()) {
Input::flashExcept('password');
return Redirect::to('register')->withErrors($validation)->withInput();
}
// Register user...
}我想要的是
class UserRegisterDto {
public $email;
public $password;
public $name;
public $gender;
protected $errors;
public function isValid() {
// Validate it here, set errors if there are some
return $validator->isValid();
}
public function getErrors() {
return $this->errors;
}
}
public function postRegister() {
$user = Input::bind('UserRegisterDto'); // This is made-up function, I wonder if something like this exists
if ($user->isValid()) {
// Register user...
}
}发布于 2014-01-20 17:42:24
热心可以帮助你保持控制器清洁:https://github.com/laravelbook/ardent
"Ardent模型使用Laravel的内置Validator类。为模型定义验证规则很简单,通常在模型类中作为静态变量完成。“
https://stackoverflow.com/questions/21229496
复制相似问题