Codeigniter重新加载url中id的页面


Codeigniter reload page with id in url

在我正在编码的这个网站上,我有一个可以通过以下url访问的页面:

http://site.com/campaigns/view/

显示所有活动的默认视图,例如

http://site.com/campaigns/view/8

显示活动8的详细信息

在这个页面上,我有一个表单,您可以从中添加订阅者到特定的活动。我的控制器逻辑是这样的:

$campaign_id = $this -> uri -> segment(3);
$this -> campaign_model -> get_campaign_details(3);
// Form was submitted
if ($this -> input -> post()) {
    //code to check inputs and save subscriber
} else {
    // Display page with campaign details
} 

现在我的问题是,在else分支中,我将如何显示带有活动详细信息的页面。我试过了redirect("campaigns/view/8")它创建了一个重定向循环和

$this -> load -> view("campaigns/view/".$campaign_id)

当然会加载一个不存在的view 8.php。那么我该如何实现这样的功能呢?

提前感谢!

吉姆

编辑:

如果没有帖子提交,我希望看到的是详细信息,其中包括订阅者列表,活动编号8,9等。

如果有帖子提交,我希望再次看到详细信息页面,当然这次将包括新添加的订阅者。

Submit again -> add subscriber -> details view again等等

你需要明确你想要的输出在活动8的情况下,而不是在一个帖子提交后。当然,重定向只会返回到同一页面。

你希望看到什么行为发生?

// If no `campaign_id` in the url, set campaign id to 0
$campaign_id = $this->uri->segment(3, 0);
$this->load->model('campaign_model');
// Form was submitted
if ($this->input->post()) {
    //code to check inputs and save subscriber
}
if ($campaign_id > 0) {
    $data['campaign_details'] = $this->campaign_model->get_campaign_details($campaign_id);
    // Display page with campaign details
    $this->load->view('campaign/details', $data);
}
else {
    $data['campaign_list'] = $this->campaign_model->get_campaign_list();
    // Display list of campaigns
    $this->load->view('campaign/list', $data);
}