Php 为什么模型加载在Codeigniter中的第一个?
我有一个用户库Php 为什么模型加载在Codeigniter中的第一个?,php,codeigniter,Php,Codeigniter,我有一个用户库currentLang,可以检测网站的当前语言。 还有一个模型,它确实请求并从中获取数据 请求基于当前语言。 这是在自动加载中设置的库currentLang。 问题是,首先在Codeigniter中加载所有模型,然后加载库。 所以,当我打开网站时,我会得到一个空页面,因为查询是在没有库中参数的情况下完成的 我必须以这种方式更改什么?先加载哪个并不重要,只要您能够将当前语言id注入CodeIgniter实例中,您就可以了 例如: // Library class CurrentLan
currentLang
,可以检测网站的当前语言。
还有一个模型,它确实请求并从中获取数据
请求基于当前语言。
这是在自动加载中设置的库currentLang
。
问题是,首先在Codeigniter中加载所有模型,然后加载库。
所以,当我打开网站时,我会得到一个空页面,因为查询是在没有库中参数的情况下完成的
我必须以这种方式更改什么?先加载哪个并不重要,只要您能够将当前语言id注入CodeIgniter实例中,您就可以了 例如:
// Library
class CurrentLang {
// A variable that will hold the CodeIgniter object.
protected $CI;
public function __construct () {
$this->CI = get_instance();
$this->set_language();
}
protected function set_language () {
// Some code to determine which language to set (your logic goes in determine_language method in this class)
$Language = $this->determine_language();
// then we inject the language id in the instance as follows.
$this->CI->CurrentLanguageId = $Language->id;
}
}
// Model
class Some_model extends CI_Model {
public function get_posts () {
$q = $this->db
->where('language_id', $this->CurrentLanguageId)
->limit(10)
->get('posts');
return $q->result();
}
}
请记住,在CodeIgniter 3x中,库名称的第一个字母应大写