2016-04-30 74 views
1

我一直在Codeigniter的文檔上,我希望有分頁外部配置文件,所以我做了以下內容:如何加載外部配置文件用於分頁在笨

我把我的$config陣列在config/pagination.php然後每個控制器上我需要使用配置文件分頁我將使用:

$this->load->library('pagination'); 
$config['base_url'] = $base_url; 
$config['total_rows'] = $total_rows; 
$config['per_page'] = $per_page; 
$pag_links = $this->pagination->create_links(); 

我認爲這是所有。問題是它不起作用。我搜索了這個網站,發現這兩個問題已經回答:How to change data in custom loaded config arrayautoload config for pagination in codeigniter not working

他們都認爲下面的代碼行:

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

但是CodeIgniter的文件說:

設置配置文件中的偏好

如果您不希望使用上述方法設置首選項,則可以使用 ,而不是把它們放到配置文件中。只需創建一個名爲 pagination.php的新文件,在該文件中添加$ config數組。然後將文件 保存在application/config/pagination.php中,並自動使用 。如果將首選項保存在 配置文件中,則不需要使用 $ this-> pagination-> initialize()。

嘛,最重要的部分是你將不再需要使用$這 - > pagination->初始化(),如果你保存在配置文件中的首選項。

當然,如果我把我的代碼中的代碼行它的作品。

$this->load->library('pagination'); 
$config['base_url'] = $base_url; 
$config['total_rows'] = $total_rows; 
$config['per_page'] = $per_page; 
$pagination->initialize($config); 
$pag_links = $this->pagination->create_links(); 

我在這裏錯過了一些重要的東西嗎? 什麼是創建Codeigniter分頁的外部配置文件的正確方法?

回答

1

你的配置陣列應存放在應用程序/配置/ pagination.php 然後,您不需要添加:

$this->load->library('pagination'); 
$config['base_url'] = $base_url; 
$config['total_rows'] = $total_rows; 
$config['per_page'] = $per_page; 

控制器只調用庫

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

爲你創建的配置有這些... 只有我能想到的是,如果你使用變量$ total_rows等在配置文件中被自動加載,因爲它們不會引用任何在外殼RNAL文件...您將需要直接指定值,例如:

$config['total_rows'] = 200; 

然而,如果這些值需要在控制器內被指定,你將需要使用你說的方式,並使用

$pagination->initialize($config); 

在控制器中。