0

引用这个: 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”首选项中向包含您的日历的控制器提供 URL。
  • 您必须通过它们出现的 URI 段向日历生成函数提供“年”和“月”(注意:日历类会自动将年/月添加到您提供的基本 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()吗?或者我应该以calendar()某种方式将 URL 段传递回我的原始函数并在那里用它们做其他事情?路线?我不确定是什么。

任何人都可以对此有所了解吗?请尽可能详细。谢谢。

4

2 回答 2

0

您可能想在路由文件中再添加一条规则。像这样的东西:

$route['events/calendar'] = 'events/calendar';
$route['events/calendar/(:any)'] = 'events/calendar';
于 2013-03-07T00:36:54.410 回答
0

我有两个问题,都在我的路由文件中。

1)我需要添加这条路线......

$route['events/calendar/(:num)/(:num)'] = 'events/calendar/$1/$2';

2)我错误地将以下路线放置在上面#1 的路线上方,这压倒一切......

$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';
于 2013-03-07T00:52:04.253 回答