Aktualnie zrobiłem tak, że jeśli użytkownik wypełni źle jakieś pole, np. za mało znaków. To po SUBMIT dostanie czystą stronę z wyjątkiem "login => String musi mieć minimum 3 znaki".
Widok:
funkcja create:
try { $form = new Form(); $form->post('login') ->val('minlenght', 3); $form->post('email') ->val('validateEmail'); $form->submit(); 'login' => $this->cleanString($_POST['login']), 'password' => $_POST['password'], 'email' => $_POST['email'] ); $this->model->create($data); } catch (Exception $e) { } }
funkcja minlenght:
return "String musi mieć minimum $arg znaków"; }
funkcja submit:
public function submit() { //jeśli walidacja ok return true; } else { //jeśli źle wypełnione $str = ''; foreach ($this->_error as $key => $value) { $str .= $key . ' => ' . $value . "\n"; } throw new Exception($str); } }
Chciałbym, aby to było jakoś bardziej przyjazne dla użytkownika i na przykład, przenosiło użytkownika z powrotem na stronę z formularzem i gdzieś tam była informacja, że "login => String musi mieć minimum 3 znaki".
Nie wiem czy w ogóle używanie wyjątków do takich sytuacji jest ok? I czy to co chcę osiągnąć jest możliwe, używając wyjątków? Może kompletnie, źle się do tego zabrałem?
Po prostu nie wiem jak się za to zabrać, wszystko było super, do momentu kiedy zdałem sobie sprawę, że jednak warto byłoby pokazać użytkownikowi co zrobił źle w przyjaźniejszy sposób.
Próbowałem patrzeć jak to jest w różnych frameworkach, ale tylko jeszcze bardziej zgłupiałem.