Database codeigniter中的动态全局
在codeigniter中使用动态全局变量的最佳实践是什么 我想根据从数据中加载的键加载一个带有常量的文件 我尝试了库,但它们是在模型初始化之前加载的 我希望它如何工作: 1) 用户登录 2) php检查该用户是普通用户(来自数据库)还是管理员 3) 如果是普通用户,我将相应地定义全局变量 否则我将使用不同的全局变量 当用户登录时,这种情况只应发生一次。我就是这样做的: 人员登录时,php检查(在同一控制器中)需要如何定义全局变量。它定义了它们,但一旦我从另一个控制器调用这些变量,它们就会被删除。(我使用AJAX调用另一个控制器) 哦,我还应该说,当我们同时运行多个AJAX请求时,CI存在bug(如果同时使用AJAX,则无法使用CI会话) 所以问题是:如何防止它们被删除 首先感谢您-简单的部分: 使用AJAX的CodeIgniter数据库会话(最近) 第二,关于全球: 我给你的建议是首先扩展CodeIgniter的Database codeigniter中的动态全局,database,codeigniter,dynamic,global-variables,Database,Codeigniter,Dynamic,Global Variables,在codeigniter中使用动态全局变量的最佳实践是什么 我想根据从数据中加载的键加载一个带有常量的文件 我尝试了库,但它们是在模型初始化之前加载的 我希望它如何工作: 1) 用户登录 2) php检查该用户是普通用户(来自数据库)还是管理员 3) 如果是普通用户,我将相应地定义全局变量 否则我将使用不同的全局变量 当用户登录时,这种情况只应发生一次。我就是这样做的: 人员登录时,php检查(在同一控制器中)需要如何定义全局变量。它定义了它们,但一旦我从另一个控制器调用这些变量,它们就会被删除
CI_控制器
类,实现Phil Sturgeon题为的博客上概述的技术。完成后,让所有控制器从MY\u控制器继承,而不是直接从CI\u控制器继承
然后,您可以将MY\u-In\u-Controller
,MY\u-Out\u-Controller
,MY\u-Admin\u-Controller
…等从MY\u-Controller
扩展,但我离题了。重要的部分是检查新的基本控制器中的登录状态,并设置globals
class MY_Controller extends CI_Controller{
function __construct(){
parent::__construct();
$l = $this->session->userdata("loggedin");
if((!isset($l))||($l==FALSE)){
/*user is logged out - set appropriate globals*/
}
else{
/*user is logged in - fetch them from the database and set appropriate globals*/
}
}
}
现在,当您创建新控制器时,例如,Blog
、News
或About
,您不必每次都设置全局变量,它们将可以在控制器、模型和视图中访问;所有这些都是因为父类会处理它。你能详细说明一下你的过程吗?你的意思是常量都已经加载好了?也许你可以创建一个控制器,然后用常量加载你自己的文件?@Jurgo我就是这么做的,但是这些变量会被删除