Sto usando Kohana, ma penso che questa domanda sia più generale.Dove dovrebbe verificarsi la convalida del modulo in un progetto MVC?
Ho eseguito la convalida del modulo nel controller e fino ad ora ha funzionato bene. Ma ultimamente, ho avuto un problema.
Ho un modello di commenti e invio commenti da alcuni controller diversi. Invece di avere un validatore in ogni controller, l'ho inserito nel modello.
Ciò è grande perché
- solo un posto per cambiare/aggiungere regole di validazione (secco)
Questo fa schifo perché
- Io, ovviamente, bisogno di restituire un successo o il fallimento al controller e la libreria di convalida di Kohana restituisce gli errori come array. Quindi il mio ritorno simile a questa
sul successo
array('success' => true);
ON FAIL
array('success' => false, $errors);
non posso fare a meno di pensare questo è sbagliato. Si si sente sbagliato.
Se lo faccio nel controller, posso semplicemente fare
if ($post->validate()) {
doWhatever();
} else {
$this->template->formErrors = $post->errors('form_errors');
}
Quale sembra migliore (per me).
C'è un modo migliore per farlo? Devo convalidare nel controller o nel metodo? Sto impazzendo?
Ecco come faccio e poi controllo l'indice di successo per decidere cosa fare (non con Kohona, ma in generale.) –