引用此信息: http://ellislab.com/codeigniter/user-guide/libraries/calendar.html
允许您的日历通过动态增加/减少 下一个/上一个链接要求您设置日历代码 类似于这个例子:
$prefs = array (
'show_next_prev' => TRUE,
'next_prev_url' => 'http://example.com/index.php/calendar/show/'
);
$this->load->library('calendar', $prefs);
echo $this->calendar->generate($this->uri->segment(3), $this->uri->segment(4));
您会注意到有关上述示例的一些事项:
- 您必须将“show_next_prev”设置为TRUE。
- 您必须在“next_prev_url”偏好设置中提供包含您日历的控制器的网址。
- 您必须通过它们出现的URI段向日历生成功能提供“年”和“月”(注意:日历) class会自动将年/月添加到您提供的基本URL。)。
以上是CodeIgniter 2文档中有关如何在日历上生成“下一个/上一个”链接的总和。
以下是我尝试实现此目的的方法。
在我的events.php
控制器文件中:
public function calendar()
{
$prefs = array (
'month_type' => 'long',
'day_type' => 'short',
'show_next_prev'=> TRUE,
'next_prev_url' => 'http://mydomain.com/events/calendar/'
);
$this->load->library('calendar', $prefs);
echo $this->calendar->generate($this->uri->segment(3), $this->uri->segment(4));
}
在我的routes.php
文件中:
$route['events/calendar'] = 'events/calendar';
当我转到/events/calendar/
时,我会看到当月的日历。
但是,当我点击next
链接时,我会按预期进入/events/calendar/2013/04
,但这只是一个404页。
我认为文档中的示例是一个很大的假设,读者应该自动知道还需要在这里做些什么。目前还不清楚这个例子是完整的,是否应该起作用,或者我是否应该知道一个关键部分是否缺失。我应该创建一个名为show()
的函数吗?或者我应该以某种方式将URL段传回原来的calendar()
函数,并在那里与它们做其他事情?路线?我不确定是什么。
有人可以对此有所了解吗?请尽可能详细。感谢信。
答案 0 :(得分:0)
您可能想在路线文件中再添加一条规则。 像这样:
$route['events/calendar'] = 'events/calendar';
$route['events/calendar/(:any)'] = 'events/calendar';
答案 1 :(得分:0)
我的路由文件中有两个问题。
1)我需要添加这条路线......
$route['events/calendar/(:num)/(:num)'] = 'events/calendar/$1/$2';
2)我错误地将以下路线放在上面的路线上面的路线,这是超越了...
$route['events/(:any)'] = 'events/view/$1';
...工作
$route['events/calendar'] = 'events/calendar';
$route['events/calendar/(:num)/(:num)'] = 'events/calendar/$1/$2';
$route['events/(:any)'] = 'events/view/$1';
$route['events'] = 'events';