Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何更改codeigniter中的语言_Php_Codeigniter - Fatal编程技术网

Php 如何更改codeigniter中的语言

Php 如何更改codeigniter中的语言,php,codeigniter,Php,Codeigniter,我用两种语言(En&Fr)在数据库中保存了一个产品名称 如何通过更改url以不同方式加载它们 比如说 localhost/mysite/en/products/ 从我的表中加载“en_name” 及 为我加载“fr\u name”?我认为最简单的方法可能是将uri段传递给查询的where子句 比如: $lang = $this-uri->segment(3); $this->db->where('language', $lang); $this->db->ge

我用两种语言(En&Fr)在数据库中保存了一个产品名称

如何通过更改url以不同方式加载它们

比如说

localhost/mysite/en/products/
从我的表中加载“en_name”


为我加载“fr\u name”?

我认为最简单的方法可能是将uri段传递给查询的where子句

比如:

$lang = $this-uri->segment(3);
$this->db->where('language', $lang);
$this->db->get('table');

如果要将不同语言的文本存储在文件中(将包含在页面中),而不是存储在数据库中,则使用语言库。因此,如果语言文本存储在数据库中,则需要检查负责检查url段的方法,以检查url是否包含
en
fr
,并加载相应的语言

因此,使用的方法是:

$this->uri->segment(n)
有关如何使用它的更多信息:

您的情况应该是:
编辑

if($this->uri->segment(1) == "fr"){
   $this->session->set_userdata('lang', 'fr');
}else{
   $this->session->set_userdata('lang', 'en');
}

现在,通过检查
lang
会话的值,您可以轻松地检查从
模型(db文件)中选择的语言。最后,我使用此CI扩展名执行了此操作,下面是我的代码:

$lang = $this->uri->segment(1);
echo $prodct[$lang."_name"];
现在如果我像这样输入我的url

localhost/mysite/en/products/
它将从DB中获取类似“en_name”的字段,
“fr”也是一样。

到目前为止你都试过什么?我试过用语言库来做,但我不知道如何告诉它从我的数据库加载名称:(我的问题不是段或类似的,我的问题是当我调用“en”或“fr”时,如何告诉它加载“en\u name”或“fr\u name”我的数据库中的字段用于我的全部products@hamidreza检查我的更新答案,我使用会话指定使用的语言,当然所有人都可以访问它pages@hamidreza为什么要删除“已解决”选项?
localhost/mysite/en/products/