2016-04-30 71 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); 

在控制器中。