我想在我所有网页的第一个运行此代码,
我正在使用代码点火器
代码是:
if(!$this->session->userdata('lang')):
$this->session->set_userdata('lang','ar');
endif;
怎么做?
我想在我所有网页的第一个运行此代码,
我正在使用代码点火器
代码是:
if(!$this->session->userdata('lang')):
$this->session->set_userdata('lang','ar');
endif;
怎么做?
如果您还没有,不妨看看 CodeIgniter 的语言类。
您可以扩展本机CI_Controller
类。扩展此类允许您添加附加功能,同时保留本机核心类的原始功能。
为了让代码首先在所有页面上运行,您可以将代码添加到新创建的子类的构造函数中 - 如果您使用新的子类扩展控制器,那么当控制器中的任何函数( s) 被调用。去做这个:
创建一个子类
MY_Controller.php
在项目目录中创建一个名为的文件application/core/
。这个新类需要扩展CI_Controller
和父构造函数。该类应如下所示:
<?php
class MY_Controller extends CI_Controller {
public function __construct()
{
parent::__construct(); //make sure you extend the parent constructor
//Your code:
if( ! $this->session->userdata('lang') )
$this->session->set_userdata('lang','ar');
}
}
确保类前缀正确
如果您已用作MY_
新类的前缀,那么您不需要在这里做任何事情,但无论如何知道它是有用的。
您还需要确保在application/config/config.php
文件中正确设置了子类前缀。
$config['subclass_prefix'] = 'MY_';
此前缀必须与您创建的新类的前缀匹配。默认情况下它是MY_
,但您可以将其更改为您想要的,只要它们对应 - FOO_
, BAR_
, WHATEVER_
... 例外是CI_
,它是为 CodeIgniter 的本机库保留的。
使用新的子类扩展所有应用程序的控制器
您在application/controllers/
is(/are) 中的控制器可能正在扩展CI_Controller
. 要使用新创建的子类,您的控制器应该扩展MY_Controller
父构造函数。
class Welcome extends MY_Controller {
function __construct()
{
parent::__construct();
}
//More functions...
}