CodeIgniter 中分页的自动加载配置不起作用
Posted
技术标签:
【中文标题】CodeIgniter 中分页的自动加载配置不起作用【英文标题】:Autoload Config for Pagination in CodeIgniter not working 【发布时间】:2011-03-19 23:43:11 【问题描述】:我正在尝试在我的 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- 当我说将配置内联不起作用时,我错了。它工作正常。自动加载不起作用。
问候
【问题讨论】:
【参考方案1】:终于用这段代码解决了我的问题……
$this->config->load("pagination");
$page_limit = $this->config->item("per_page");
$config['total_rows'] = $var; // Some variable count
$this->pagination->initialize($config);
这让我可以在文件中定义配置项,并在控制器中初始化我想要的项目,就像我的情况一样,总数。行数 - 从数据库中检索。
问候
【讨论】:
【参考方案2】:您的配置文件中的自动加载行应该是这样的
$autoload['libraries'] = array('pagination');
并且在你使用 create_links() 等之前,你必须在你的配置数组之后在你的控制器中有这一行。
$this->pagination->initialize($config);
【讨论】:
+1 虽然您忽略了 OP 不需要自动加载和手动加载分页类$autoload['libraries'] = array('pagination');
不会自动加载我创建的配置文件。我将自动加载库 AFAIK。
在较新版本的 CI 中,initialize()
方法将分页重置为默认值,并且仅覆盖 $config
数组。在这种情况下,pagination.php
文件将被完全忽略。对我来说毫无意义,但现在就是这样。以上是关于CodeIgniter 中分页的自动加载配置不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作