0

我使用下面的 url 来调用我的产品视图:

example.com/diamondshop/index.php/product/view

产品控制器中的视图功能示例:

function view($msg = "") {
    $data['msg'] = $msg;
    $this->load->view('product', $data);
}

通过单击“添加到购物车”按钮,我将控制器称为以下 url:

example.com/diamondshop/index.php/product/addcart/3

在这里,3 是我的产品 ID。

产品控制器中的addcart函数示例:

function addcart($pid) {
    //
    // My code to add in cart
    //
    $this->view("Item Added to Cart.");
}

我现在再次进入产品视图,但加载视图后,我的 URL 保持不变:

example.com/diamondshop/index.php/product/addcart/3

但是,当我第一次调用产品视图时,我想要像上面这样的新 URL:

example.com/diamondshop/index.php/product/view

那么,如何使用新 URL 调用产品视图?

4

2 回答 2

3

使用重定向功能:

redirect('/product/view/', 'refresh');

之后添加这个$this->view("Item Added to Cart.");

这里还有一些 URL 助手:http ://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

于 2013-10-22T16:07:47.683 回答
1

问题是 CodeIgniter 只是在同一个请求中从一个函数跳转到另一个函数(即从addcartto view),这不会改变你的 URL。addcart如果要更改 URL,则需要在函数末尾进行标头重定向。这可以通过URL Helper及其redirect方法来完成。

redirect('/product/view');

关于第二个参数,手册是这样说的:

可选的第二个参数允许您在“位置”方法(默认)或“刷新”方法之间进行选择。定位速度更快,但在 Windows 服务器上有时可能会出现问题。

于 2013-10-22T16:07:51.530 回答