OpenCart 2.3.0.2加载语言文件至视图失效问题求助
OpenCart 2.3.0.2 语言文件加载到视图失效问题解决
你遇到的问题根源是:OpenCart加载语言文件后,语言变量默认存储在控制器的$this->language->data数组中,不会自动传入视图的$data数组里。视图只能访问你手动添加到$data中的变量,所以$test能正常输出,但语言变量无法获取。
以下是两种解决方法:
方法一:单独赋值需要的语言变量
在控制器中,将需要用到的语言变量逐个添加到$data数组:
class ControllerProductCategoriesList extends Controller { public function index(){ $this->load->language('product/categorieslist'); $data = array(); $data['test'] = "this is text from controller"; // 手动添加需要的语言变量 $data['meta_keyword'] = $this->language->get('meta_keyword'); $data['title'] = $this->language->get('title'); $data['categories_text'] = $this->language->get('categories_text'); $this->response->setOutput($this->load->view('product/categorieslist',$data)); } }
方法二:批量合并所有语言变量
如果需要用到语言文件中的所有变量,可以直接将$this->language->data合并到$data数组,一次性传入视图:
class ControllerProductCategoriesList extends Controller { public function index(){ $this->load->language('product/categorieslist'); $data = array(); $data['test'] = "this is text from controller"; // 合并所有语言变量到$data $data = array_merge($data, $this->language->data); $this->response->setOutput($this->load->view('product/categorieslist',$data)); } }
修改后,视图中的<?php echo $meta_keyword; ?>就能正常输出语言文件中定义的内容了。
内容的提问来源于stack exchange,提问作者HamzaWe
相关产品推荐
相关产品推荐

