这很简单我想但我是codeigniter的新手,所以请帮忙。我有一个表单页面,它接收数据,并在提交时将数据存储在数据库中。然后我尝试了两种方法重定向回主页:
first: $this->load->view('home');
second: redirect('/login/form/', 'refresh');
他们成功重定向或加载主页,但url仍为/ property / new_property,这是数据输入的视图。当我点击主页上带有url的刷新时,如上所述,重新提交数据,因此数据库中有多个记录。如何重定向到home并创建url property / home?
由于
答案 0 :(得分:1)
$this->session->set_flashdata('message', 'New Post has been added');
{
{1}}
保存成功后set_flashdata会帮助您销毁提交的数据,重定向会更改您的网址。
答案 1 :(得分:0)
你需要使用url helper
redirect('/home')
这是在CI处重定向的正确方法。 http://ellislab.com/codeigniter/user_guide/helpers/url_helper.html
要加载该帮助程序,您可以使用$this->load->helper('url');
或者将它写在配置文件夹中的autoload.php中(这样它将被加载到所有页面)。
例如,这是我网站上的一个简单的submition页面。
public function save_tips(){
if($this->input->post('save_tips')){
//Form validation and contact with model
$res = $this->model->save_tips();
if(count($res['errors'])==0){ //no errors means success
redirect('/my_tips');
} else{
$errors = $res['errors'];
}
}
$data = array();
if(isset($errors)) {
$data["errors"] = $errors;
}
$this->load->view('save_tips',$data);
}
答案 2 :(得分:0)
$this->load->view()
只会加载视图,而网址不会更改。
当您使用redirect()
时,它会重定向到其他网页,您的网址也会发生变化。
对于您的解决方案您可以在插入之前选择要在模型中插入的数据,如果存在,则不要运行插入查询,只需重定向到其他页面。