如何通过CodeIgniter中的URI段调用多个方法

时间:2013-07-19 10:24:10

标签: codeigniter controller routing

我有CodeIgniter的问题;我有一个名为site的控制器,在此控制器中有两种方法:productionstory

production通过创建production/slug的模型调用特定作品。

我想要实现的是创建以下网址:

site/production/slug/story 

我如何实现这一目标?随着slug的变化,在故事中我想用$this->uri->segment(3)从数据库中调出一个故事。

2 个答案:

答案 0 :(得分:1)

您可以发布多个参数:

URI: site/production/slug/story/5

public function production($one, $two, $there)
{
    echo $one."<br />";
    echo $two."<br />";
    echo $there."<br />";
}

# OUTPUT
slug
story
5

答案 1 :(得分:0)

method名称作为第二个参数传递给第一个方法。 例如,如果URI为site/production/slug/story,请将story传递给production方法并执行必要的检查,如下所示:

class Site extends CI_Controller {

    public function __construct()
    {
        parent::__construct()
    }

    public function story($text) {
        echo $text;
    }

    public function production($slug = '', $callback = NULL)
    {
        // Do something with $slug

        if (isset($callback) && method_exists(__CLASS__, $callback)) {
            $this->{$callback}($slug);
        }
    }
}

<强> PHPFiddle Demo