我想知道验证包含多种输入类型的表单的正确方法是什么。
表单应该是一系列指令,逐个验证每个输入:
class FormController{
function validateForm(){
if(!$_POST['post_input_name']) return $error;
if(!$_POST['post_input_birthday']) return $error;
}
}
或表单控制器是否应该为每个输入包含一个控制器?
class FormController{
function __construct($input_name_controller, $input_birthday_controller){
....
}
function validateForm(){
$this->getInputNameController()->validate($_POST);
$this->getInputBirthdayController()->validate($_POST);
}
}
我的猜测是第二种解决方案更好,因为通用字段控制器可以在其他类型的表单中重用,代码语法对我来说似乎更具可读性。
对此有任何意见都是受欢迎的。谢谢
答案 0 :(得分:0)
我在一周前开始使用OpenCart,其所有控制器都有类似
的代码...
if (isset($this->request->get['sort'])) {
$sort = $this->request->get['sort'];
} else {
$sort = 'p.sort_order';
}
if (isset($this->request->get['order'])) {
$order = $this->request->get['order'];
} else {
$order = 'ASC';
}
if (isset($this->request->get['page'])) {
$page = $this->request->get['page'];
} else {
$page = 1;
}
...
所以我认为你的第一个解决方案是
答案 1 :(得分:-1)
使用valitron或validation等验证库。