2010-07-23 26 views
4

我想在我的CI webapp中實現分頁。現在我把像這樣的配置文件中的分頁的配置...自動加載配置在CodeIgniter分頁不起作用

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
$config['base_url'] = "http://example.com/index.php/home/index"; 
$config['num_links'] = "9"; 
$config['per_page'] = "20"; 
$config['total_rows'] = "200"; 

/* End of file pagination.php */ 
/* Location: ./system/application/config/pagination.php */ 

在我的控制,我已經加載庫

$this->load->library("pagination"); 

而且我已經定義分頁的配置文件是自動加載在配置/ autoload.php

$autoload['config'] = array('pagination'); 

最後,我呼籲建立在我的視圖模板鏈接方法:

<?php echo $this->pagination->create_links(); ?> 

這沒有創建任何鏈接。配置正在自動加載。我檢查使用...

<?php echo $this->config->item("num_links"); ?> <!-- this dislayed 9 --> 

我在這裏錯過了什麼?只是爲了記錄,將配置放在控制器內部也不起作用。

更新#1 - 我發現配置設置加載正確,但他們沒有到達庫或類似的東西。在分頁庫內部 - 我做了一些硬編碼以發現per_page參數在那裏爲零。

更新#2 - 我說錯了,當我把配置內聯不起作用。它工作正常。自動加載不起作用。

問候

回答

2

最後使用此代碼來解決我的問題...

$this->config->load("pagination"); 
$page_limit = $this->config->item("per_page"); 
$config['total_rows'] = $var; // Some variable count 
$this->pagination->initialize($config); 

這讓我可以在一個文件中定義配置項目以及初始化我想要的控制器項目,就像我的情況一樣,行 - 從數據庫中檢索。

問候

0

在您的配置文件自動加載你行應該是這個

$autoload['libraries'] = array('pagination'); 

而且必須在這一行,你的配置陣列控制器後,您使用create_links()等

$this->pagination->initialize($config); 
+0

+1你雖然忘了提及的是,OP並不需要自動加載和手動加載分頁類 – DRL 2010-07-23 09:32:51

+0

'$自動加載[「圖書館」] =陣列(「分頁」);'贏得自動加載我創建的配置文件。我會自動加載圖書館AFAIK。 – vikmalhotra 2010-07-26 06:42:37

+0

在更新版本的CI中,'initialize()'方法將分頁重置爲默認值,並且僅覆蓋'$ config'數組。在這種情況下,pagination.php文件完全被忽略。對我來說沒有意義,但現在這是它的工作原理。 – Sparky 2016-09-08 19:27:40