Я работаю с Laravel, и в примерах они, похоже, решили реализовать проверку внутри контроллера, и мне это совсем не нравится. Я хочу спросить, есть ли какой-то метод bind
, который может связывать поля ввода, которые я создал, чтобы я мог убедиться, что мои контроллеры не запутаны.привязка модели из формы ввода
Я попытаюсь объяснить, что я хочу в коде, я думаю, это будет намного яснее.
То, что я
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...
}
}
Хм, хорошо выглядит, но я смущен насчет 'save'. Что, если (и в моем случае это правда), я использую пользовательский репозиторий, чтобы сохранить его, так как я не использую MySql, а Cassandra? – sed
Не знаю, извините. Я использую его с MySQL. – chris342423