Thinkphp在Model里使用_after_select实现多语言


发布时间:2020-04-26 15:05:30 | 来源:网络 | 编辑整理:大菜哥

在项目里我们经常会使用到多语言,而有一种情况是在切换不同的语言时需要调用数据库里的不同字段的值。

例如,在文章内容页,如果是中文,读取content字段里的值显示,如果是英文,则读取en_content字段里的值显示。

实现这样的需求,需要在Model层做判断,以上面的例子需求为例,我们需要在文章Model里使用_after_select方法,下面直接上代码。

//

protected function _after_select(&$result,$option='')
{
  foreach($result as &$value){
     if(LANG_SET == 'en-us'){   //如果是英文,就用en_content代替content 模板中输出都是content
          $value['content'] = $value['en_content'];
           }
      }
}