2013-03-07 42 views
0

工作引述如下:http://ellislab.com/codeigniter/user-guide/libraries/calendar.html無法獲得下一首/上鍊接的笨2 Calendar類

爲了讓您的日曆通過 下/上一環節動態遞增/遞減需要您設置類似於此示例您的日曆代碼 :

$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中。

以上是總和什麼笨2文件說,如何產生「下一首/上」日曆鏈接。


這裏是我如何試圖實現這一點。

在我events.php Controller文件:

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

我有兩個問題,無論是在我的路由文件。

1)我需要添加此路線...

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

2)I 錯誤地放置下列路線以上路線從上述#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'; 
0

您可能想要爲路由文件添加一條規則。 事情是這樣的:

$route['events/calendar'] = 'events/calendar'; 
$route['events/calendar/(:any)'] = 'events/calendar'; 
+0

我無法讓您的配置正常工作...前一個/下一個鏈接停止提供404錯誤,而是每個日曆都是2013年3月。您的第二條路線剝離了所需的第3和第4個細分。 – Sparky 2013-03-07 00:55:01