我应该使用Controller Argument还是uri-> segment?

时间:2013-01-31 12:10:24

标签: php codeigniter

应该使用Controller Argument

function view($post_id) {
    ...
}

或uri->段

function view() {
    ...
    $post_id = $this->uri->segment(3);
    ...
}

仅限简单的博客文章ID。有区别吗?

2 个答案:

答案 0 :(得分:7)

我会使用控制器参数。

然后,如果您不得不移动代码并将其放在子目录中,它仍然可以工作,而段方法则不然。

答案 1 :(得分:0)

,在这种情况下没有区别。尽可能使用Controll Argument。它允许您更多地处理路由并移动控制器文件。

如果您希望使用uri,请考虑使用$this->uri->rsegment(3);,因为它允许您绑定路由而不会影响该部分。

CodeIgniter的最大优点是,您可以选择哪种解决方案。我更喜欢使用参数,因为它允许我快速理解url中的值如何影响函数而无需查看函数;我看到顶部的值。

如果您害怕创建错误消息,请考虑将其设置为

function view($post_id = NULL) {
    ...
}

代替。如果您在没有post_id的情况下访问网址,则会阻止错误。