我很熟悉代碼點火器/ 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