2010-07-23 87 views
4

我想在我的CI webapp中实现分页。现在我把像这样的配置文件中的分页的配置...自动加载配置在CodeIgniter分页不起作用

<?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"); 

而且我已经定义分页的配置文件是自动加载在配置/ 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 - 我说错了,当我把配置内联不起作用。它工作正常。自动加载不起作用。

问候

回答

2

最后使用此代码来解决我的问题...

$this->config->load("pagination"); 
$page_limit = $this->config->item("per_page"); 
$config['total_rows'] = $var; // Some variable count 
$this->pagination->initialize($config); 

这让我可以在一个文件中定义配置项目以及初始化我想要的控制器项目,就像我的情况一样,行 - 从数据库中检索。

问候

0

在您的配置文件自动加载你行应该是这个

$autoload['libraries'] = array('pagination'); 

而且必须在这一行,你的配置阵列控制器后,您使用create_links()等

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

+1你虽然忘了提及的是,OP并不需要自动加载和手动加载分页类 – DRL 2010-07-23 09:32:51

+0

'$自动加载[“图书馆”] =阵列(“分页”);'赢得自动加载我创建的配置文件。我会自动加载图书馆AFAIK。 – vikmalhotra 2010-07-26 06:42:37

+0

在更新版本的CI中,'initialize()'方法将分页重置为默认值,并且仅覆盖'$ config'数组。在这种情况下,pagination.php文件完全被忽略。对我来说没有意义,但现在这是它的工作原理。 – Sparky 2016-09-08 19:27:40