我暂时对Widget的理解,就是一些页面有相同的地方例如导航栏(这里只是举个例子),当然我们可以用thinkphp的继承模板来实现,但是有些页面不需要导航栏,我们就可以用Widget的扩展,用W()函数调用他。
Widget最好用的就是可以当做独立的模板使用,就相当于ifram,嵌套在调用他的模板里。
实现Widget的扩展步骤
一、在Widget文件夹定义一个控制层
如果没有Widget文件夹,那么就在Home下建一个文件夹,然后定义一个控制层,控制层名字CategoryWidget
class CategoryWidget extends controller
{
<span style="white-space:pre"> </span>public function index()
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span> $this->display();<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span><pre name="code" class="html"><span style="white-space:pre"> </span>public function param($id)
<span> </span>{
<span style="white-space:pre"> </span> echo $id;<span style="white-space:pre"> </span>
<span> </span> $this->display();<span> </span>
<span> </span>}
}
二、模板调用扩展
{:W('category/index')}
传入参数的调用Widget扩展
{:W('category/param',array(5))} 5就会被传到方法para,作为$id的值。
这是我自己写的扩展
然后调用这个扩展类的方法