我有用户库currentLang
,用于检测网站的当前语言。
还有一个模型可以请求并从中获取数据。
请求基于当前语言。
这是在自动加载中设置的库currentLang
。
问题是在库文件之后首先加载Codeigniter中的所有模型。
因此,当我打开网站时,我得到空页面,因为查询是在没有来自库的参数的情况下完成的。
我必须以这种方式改变什么?
答案 0 :(得分:0)
首先加载哪一个并不重要,只要您能够在CodeIgniter实例中注入当前语言ID,您就可以了。
示例:
// 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中库名中的第一个字母应该大写。