我很熟悉代码点火器/ OOP,但我在这一点上给它一个镜头,并且有点难住。错误代码点火器验证
我有2个功能。一个是从模型加载数据的搜索。另一个是保存功能。
我的问题是,当运行save()
时,我收到错误,因为它的尝试ti显示验证错误,但我们不再拥有从search()
函数获得的数据库中的数据。
我觉得将搜索的所有细节都包含回这个保存函数是多余的,这就是为什么我认为我做错了什么。
public function search()
{
// Define some vars
$data['title'] = 'Submit Attrition';
$data['js_file'] = 'submit.js';
// Load our helper
$this->load->helper('form');
// Get the user and pass it to the model
$empQID = $this->input->post('empQID');
$data['userDetails'] = $this->submit_model->get_details($empQID);
$data['languages'] = $this->submit_model->get_languages();
$data['types'] = $this->submit_model->get_types();
$data['ratings'] = $this->submit_model->get_ratings();
$data['processes'] = $this->submit_model->get_processes();
// Send the data to the views
$this->load->view('templates/header', $data);
$this->load->view('submit/search', $data);
$this->load->view('templates/footer', $data);
}
/**
* Validate & save attrition submission
*
* @author Carl
* @return void
*/
public function save()
{
$data['title'] = 'Submit Attrition';
$this->load->library('form_validation');
$this->form_validation->set_rules('language', 'Supporting Language', 'required');
// Validation failed, show form w/ validation errors
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('submit/search', $data);
$this->load->view('templates/footer', $data);
}
else
{
// Success : Send data to model
$this->submit_model->save_attrition();
$this->load->view('templates/header', $data);
$this->load->view('submit/success', $data);
$this->load->view('templates/footer', $data);
}
}
“save”和“search”是否将单独的动作映射到不同的路由? – 2014-10-03 17:04:35
两者都在控制器'submit'内。我首先找到用户,然后通过发布将用户ID发送到'submit/search'。然后,表单发布到'submit/save'。 – SBB 2014-10-03 17:06:45
问题在于,提交/搜索是数据库调用发生的位置,以生成要填写的表单。然后,当提交/保存发生并且未通过验证时,我们不再拥有数据库中的那些值,因为它们在其他函数 – SBB 2014-10-03 17:08:10