如何在Codeigniter中加载用于分页的外部配置文件


How to load external config file for pagination in Codeigniter

我一直在研究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();

我以为就这样。问题是它不起作用。我在网站上搜索了一下,发现这两个问题已经得到了回答:如何在自定义加载的配置数组中更改数据,以及在代码点火器不工作的中自动加载分页配置

他们都提出了以下代码行:

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

但Codeigniter的文档中写道:

在配置文件中设置首选项

如果您不希望使用上述方法设置首选项,您可以而是将它们放入配置文件中。只需创建一个名为pagination.php,在该文件中添加$config数组。然后保存文件在application/config/pagination.php中,它将被使用自动地您将不需要使用$this->pagination->initialize()如果您将首选项保存在配置文件。

好吧,重要的是如果您将偏好保存在配置文件中,则不需要使用$this->pagination->initialize()

当然,如果我把那行代码放在我自己的代码中,它就会起作用。

$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的分页创建外部配置文件的正确方法是什么

您的配置数组应该存储在application/config/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等来自动加载,因为这些变量不会引用外部文件中的任何内容。。。您需要直接指定值,例如:

$config['total_rows'] = 200;

但是,如果需要在控制器中指定这些值,则需要使用您所说的方法并使用

$pagination->initialize($config);

在控制器中。