能不能不用$this->assign()来给模板定义变量 直接调用变量 求解决

浏览:2842 发布日期:2016/09/09 分类:求助交流 关键字: 模板
在THINKPHP控制器中声明的变量用$this->assign()来设置值,例如:
$this->assign('aa','123'),在模板中直接调用{$aa}这样就可以调用声明好的变量值了
我的问题是:在每一个控制器要在模板中调用变量,必须用$this->assign()方法来设置,如果变量很多,用起来很不方便,问:怎么样在控制器声明的变量,不用$this->assign()来设置,在模板也一样可以调用变量,在哪里修改核心代码,琢磨好多天了,就是没有解决。

我自己写了一个调用模板的函数:

/**
* 模板调用
*
* @param $template 模板文件
* @param $module 模块名
* @param $theme 模板主题
*/
function template($template = 'index',$module = 'content', $theme = '') {
$path = APP_PATH . 'Templates/' . C('DEFAULT_THEME').'/';
if (!empty($theme)){
$path = APP_PATH . 'Templates/' . $theme.'/';
}
$file = $module.'/'.$template.C('TMPL_TEMPLATE_SUFFIX');
if (!file_exists($path.$file)) showmessage('模板不存在:'.$path.$file,0,'',10);
$View = load_app_class('View','Think');
if (!empty($theme)) C('DEFAULT_THEME',$theme);
$this->assign(get_defined_vars()); //获取进程 声明的 变量 常量 类 函数
$View->display($module.'/'.$template);
}

通过这个函数,我在控制器声明的变量 还是在模板中调用不出来,求高手爱心人帮解决下,
最佳答案
评论( 相关
后面还有条评论,点击查看>>