我已经在Codeigniter中看到,我应该通过将验证代码放入我的控制器并将验证规则/默认值放入我的模型来组织我的表单代码。
这是通过在我的模型中创建一个如下所示的函数,然后从我的控制器内部调用它来完成的吗?它确实让控制器保持干净,但我想确保这是组织事物的正确方法。
//inside widget_model.php
function myRules()
{
$this->form_validation->set_rules('item_name', 'name', 'required');
$this->form_validation->set_rules('item_description', 'description', 'required');
}
function myDefaults()
{
return $defaults = array(
'page_title' => "Add new widget",
'fname' => 'widget_name',
'fdescription' => 'widget_description'
);
}
答案 0 :(得分:1)
你不需要那样做恕我直言。 最好的方法是在控制器中设置验证规则,如下所示:
$this->load->helper(array('form', 'url'));
$this->load->library('validation');
$rules['username'] = "required";
$rules['password'] = "required";
$rules['passconf'] = "required";
$rules['email'] = "required";
$this->validation->set_rules($rules);
$fields['username'] = 'Username';
$fields['password'] = 'Password';
$fields['passconf'] = 'Password Confirmation';
$fields['email'] = 'Email Address';
$this->validation->set_fields($fields);
if ($this->validation->run() == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}
}
您无需在模型中添加任何内容。
此处有关此主题的更多信息: http://codeigniter.com/user_guide/libraries/validation.html
答案 1 :(得分:0)
另一种选择是将validation rules in a config file按顺序排列。 CI将自动加载(如果正确命名)。