【ThinkPHP学习】模板支持及思路

来源:互联网 发布:淘宝hd历史版本 ios 编辑:程序博客网 时间:2024/05/21 17:17

RT.

使用ThinkPHP的模板支持,直接在页面加载模板,使得页面结构更加清晰化。ThinkPHP(按照最新3.2.2版本)的模板操作流程思路总结如下:

1:在对应模块(Home/Admin/...)Controller下创建对应控制器

2:在View中创建对应控制器的表现层文件

3:在模板文件夹Widget中创建模板控制器

4:在View中创建渲染模板的模板文件


举个栗子:

我的项目  Exam  在项目下有Home模块  

1:在Home/Controller下新建一个ModulesCotroller.class.php控制器,其中的index方法调用自身表现层文件展示:

<?phpnamespace Home\Controller;use Think\Controller;class ModulesController extends Controller{    public function index(){        $this->display();    }}

2:在Home/View/Modules目录下新建一个index.html表现层文件

<!DOCTYPE html><html><head>    <title>test</title></head><body>{:W('Menu/render',array('blue'))}<!--调用W方法,并传参数值blue--></body></html>

我们通过127.0.0.1/Exam/Home/Modules/index访问这个方法,index.html文件中调用了W方法调用项目的模板文件来进行渲染,接下来完善模板文件。

3:在Home/Widget目录下创建MenuWidget.class.php菜单项模板控制器

<?phpnamespace Home\Widget;use Think\Controller;class MenuWidget extends Controller{            public function render($data){           $this->assign('menu',$data);  //取的index.html传来的值,并赋予menu变量                $this->display('Menu:menu');  //调用模板渲染文件进行渲染        }        }


4:在Home/View/Menu目录下创建menu.html

<font color="{$menu}">这是模板菜单</font>  <!--通过{$menu}来使用参数-->

通过这四个步骤,就可以在我们的控制器中调用使用我们已经创建好的模板,或者通过传入不同的参数来使得模板展现出不同的样式。


针对于传多个参数,可以在index.html中的W方法调用时,传多几个参数过去:

{:W('Menu/render',array('color'=>'blue','size'=>'30'))}

记得数组要加上下标。

在MenuWidget控制器中要分别接收这两个参数,然后再使用数组将这些参数赋予一个元素,并将其传给渲染模板文件:

        public function render($color, $size){            $data = array('color'=>$color, 'size'=>$size);            $this->assign('menu',$data);            $this->display('Menu:menu');        }

在menu模板文件中可以通过{$menu[变量下标]}的方法来调用我们的数组参数,这个和之前在模板中调用模型数据是一样的道理。

例如:

<font color={$menu[color]} size={$menu[size]}>这是模板菜单</font>


0 0