CodeIgniter路由并将值传递给方法

时间:2012-02-25 23:18:03

标签: codeigniter

我有一些关于使用route来调用传递三个值的方法的东西。

中有一个带有以下方法的控制器
public function view_day($year, $month, $day)
{
    $data['year'] = $year;
    $data['month'] = $month;
    $data['day'] = $day;

    $this->load->view('calendar/view_day', $data);
}

以及我的views文件夹中的一个页面,其中包含以下内容

<? 
    echo $this->uri->segment(5).'<p>'; 
    echo $day;
?>

最后,在我的路线文件中,我有以下一行

$route['calendar/date/:num/:num/:num'] = "calendar/view_day/$1/$2/$3";

我应该做的是路由像

这样的网址
http://www.mydomain.com/index.php/calendar/date/2012/06/10

到我的日历控制器将三个值(2012,06和10)传递给我的view_day方法。然后,收集这三个值并将它们传递到我的最后一页,以便在我的演示文稿页面中使用$ day,$ month和$ year。 现在,在结果上方运行url是

10(由行返回 - &gt; echo $ this-&gt; uri-&gt; segment(5)。'';) 3美元(由行返回 - &gt; echo $ day;)

基本上,我没有得到的是我的演示文稿页面中的变量$ day没有获得在url中传递的任何值,但返回我在路由语句中写的相同文本($ 3)。

由于

1 个答案:

答案 0 :(得分:6)

你应该像这样定义你的路线

$route['calendar/date/(:num)/(:num)/(:num)'] = "calendar/view_day/$1/$2/$3";