2012-07-24 58 views
2

我试图整合phpgrid与我的codeigniter程序。整合phpgrid与codeigniter

我需要一些关于如何使用库函数的说明。

我已经加入了phpgrid文件到应用程序/库的路径和我已加载使用$this->load->library('phpGrid');

下面是在phpgrid conf.php文件中的代码libray。

<?php 
// mysql example 
define('DB_HOSTNAME','localhost'); // database host name 
define('DB_USERNAME', 'admin');  // database user name 
define('DB_PASSWORD', 'pop3'); // database password 
define('DB_NAME', xtra); // database name  
define('DB_TYPE', 'mysql'); // database type 
define('DB_CHARSET','utf8'); // ex: utf8(for mysql),AL32UTF8 (for oracle), leave blank to use the default charset 


define('SERVER_ROOT', '/grid'); 

/******** DO NOT MODIFY ***********/ 
require_once('phpGrid.php');  
/**********************************/ 
?> 

有人可以帮我我怎样才能将定义和require_once文件引用到我的库路径?

或者是否有其他方法可以将phpgrid文件包含到我的CI项目中?

+2

你将不得不通过使用phpGrid类并使用'$ this-> load-> library('phpGrid')'来制作codeigniter库,你可以在你的视图中使用它。 – 2012-07-24 06:45:00

+0

@ArJinJain有点困难写一个单独的类,因为文件被编码:(我得到这个错误“消息:require_once(C:/ wamp/www /// grid/phpGrid.php)[function.require-once] :无法打开流:没有这样的文件或目录“访问页面时。我认为,如果我正确地参考了路径,它将起作用。但不知道如何去做 – LiveEn 2012-07-24 06:56:47

+0

@LiveEn:你是否尝试修改'require_once('phpGrid.php');'指向正确的位置? – 2012-07-24 16:18:11

回答

7

我刚刚看了一下PHPgrid源文件,看起来它们是加密的,所以你很少能够完全“整合”Codeigniters MVC框架。

要使用这样的外部库工作,这里就是我会一般做:

商店单独的config.php文件(看起来像一个PHPgrid)定义在根目录下的数据库连接常量。

然后在你的Codeigniter config/database.php文件中需要这个,并使用常量来设置Codeigniter设置。因此,您的Codeigniter database.php将如下所示:

require_once('config.php'); 

$db['default']['hostname'] = DB_HOSTNAME; 

$db['default']['username'] = DB_USERNAME; 

$db['default']['password'] = DB_PASSWORD; 

$db['default']['database'] = DB_NAME; 

您不希望将数据库连接详细信息存储在整个位置。

然后在你的phpgrid/conf.php文件的顶部添加config.php,并用相同的方法使用常量填充细节,显然也要填写其他phpgrid常量。

将所有PHPgrid文件放入应用程序/库的子目录中。现在,在您的应用程序/库文件中创建一个新的文件,该文件被称为像ci_phpgrid.php并在其中创建一个新的类象下面这样:

<?php 
require_once('phpgrid/conf.php'); 

class CI_phpgrid { 

    public function example_method($val = '') 
    { 
     $dg = new C_DataGrid("SELECT * FROM Orders", $val, "Orders"); 
     return $dg; 
    } 
} 

现在你可以使用这个用PHP电网进行沟通,离开原来的文件完好无损。

在你控制器,你只想做这样的事情:

$this->load->library('ci_phpgrid'); 
$data['phpgrid'] = $this->ci_phpgrid->example_method(3) 

$this->load->view('home_page',$data); 

然后在视图中可以使用显示表:

$phpgrid->display() 

正如我所说,我没有用PHPgrid你需要包括所有相关的JS进行排序等,但这通常是你想要在CI中处理外部库的方式。

+0

非常感谢!我不得不作出一些改变,然后它就像一个魅力 – LiveEn 2012-08-06 18:49:56

+1

找到它的官方教程:http://phpgrid.com/example/phpgrid-and-codeigniter-integration/ – KSchoniov 2015-07-13 05:26:44