Tôi đang sử dụng Kohana, nhưng tôi nghĩ câu hỏi này tổng quát hơn.Xác nhận biểu mẫu sẽ xảy ra ở đâu trong dự án MVC?
Tôi đã thực hiện xác nhận biểu mẫu trong bộ điều khiển và nó đã hoạt động tốt cho đến nay. Nhưng gần đây, tôi đã gặp phải một vấn đề.
Tôi có mô hình nhận xét và tôi gửi nhận xét từ một vài bộ điều khiển khác nhau đến nó. Thay vì có một trình xác nhận hợp lệ trong mọi bộ điều khiển, tôi đã đặt nó trong mô hình.
này là rất tốt vì
- Chỉ có một nơi để thay đổi/thêm các quy tắc xác nhận (DRY)
này sucks vì
- Tôi rõ ràng là cần phải trả lại một thành công hay thất bại đến bộ điều khiển và thư viện xác nhận của Kohana trả về lỗi dưới dạng mảng. Vì vậy, sự trở lại của tôi trông như thế này
VỀ THÀNH CÔNG
array('success' => true);
ON FAIL
array('success' => false, $errors);
tôi không thể không nghĩ rằng điều này là sai. Nó cảm thấy sai.
Nếu tôi làm điều đó trong bộ điều khiển, tôi chỉ đơn giản có thể làm
if ($post->validate()) {
doWhatever();
} else {
$this->template->formErrors = $post->errors('form_errors');
}
Mà dường như tốt hơn (với tôi).
Có cách nào tốt hơn để thực hiện việc này không? Tôi có nên xác nhận trong bộ điều khiển hoặc phương pháp? Tôi có phát điên không?
Đó là cách tôi làm điều đó và sau đó kiểm tra chỉ số thành công để quyết định làm gì (không phải với Kohona, nhưng nói chung.) –