UserModel::public function register($name, $email, $password);
Регистрирование нового пользователя это ну никак не метод UserModel. Методы моделей - это действия, производимые с объектом модели. Если бы он был статическим, это ещё куда ни шло.
Вообще странно у вас всё устроено. Вроде бы пользователь только регистрируется, т. е. объект UserModel должен создаваться по окончанию процедуры регистрации, а у вас
$user
приходит на вход
postRegisterUser(..., UserModel $user)
. А ещё потом это
$user->find($request->get('id'))
. Что ещё за id? Если пользователя только собираетесь регистрировать, у него ещё не должно быть id, или я что-то не понимаю? Ну это так, к слову...
В документации к различным фреймворкам, я вижу что-то вроде $form->isValid() и ни слова о том, что происходит далее.
Чтобы понять, что происходит дальше, нужно понять, что же собой представляет
$form
. Это класс формы, хранящий внутри себя список названий полей ввода (в вашем случае 'name', 'email', 'password'), а также все необходимые фильтры и валидаторы для этих полей. Форма, строго говоря, ничего не знает ни о контроллерах, ни даже о UserModel, её задача - принять, отфильтровать, проверить данные, вернуть список ошибок, если данные не корректны. Для каждой html формы создаётся и конфигурируется свой класс формы. В итоге получаем что-то вроде:
public function postRegisterUser(Request $request)
{
$form = $this->getRegisterForm();
// Передаём данные $_POST. Ключи не перечисляем - форма сама разберётся, что взять
$form->setData($request->getPost());
if ($form->isValid()) {
// Получаем уже отфильтрованные данные
$data = $form->getData();
// Регистрируем нового пользователя
$user = UserModel::register($data['name'], $data['email'], $data['password']);
}
}
static public function register($name, $email, $password)
{
// Регистрируем нового пользователя
}