我正在尝试在我的CI webapp中实现分页。现在我把配置的分区放在这样的配置文件中......
<?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");
我已经在config / 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 - 当我说配置内联无效时,我错了。它工作正常。自动加载不起作用。
此致
答案 0 :(得分:2)
最后使用此代码来解决我的问题...
$this->config->load("pagination");
$page_limit = $this->config->item("per_page");
$config['total_rows'] = $var; // Some variable count
$this->pagination->initialize($config);
这让我可以在文件中定义配置项,也可以在控制器中初始化我想要的项目,就像我的情况一样。行 - 从数据库中检索。
此致
答案 1 :(得分:0)
配置文件中的自动加载行应该是
$autoload['libraries'] = array('pagination');
在使用create_links()等之前,必须在配置数组之后在控制器中使用此行。
$this->pagination->initialize($config);