widget不是用来访问的,是用来被调用的。
widget是组件,我感觉就是一块封装了的div代码。
widget优势: 方便多次调用,比如在页面上左侧显示一个新闻列表,每个页面如果都调用这个列表,是不是得在每个控制器里写一遍相同的代码,不累么,用widget可能只需要写一次,然后模板中多次使用。
thinkphp中widget创建步骤:
1.模块下建Widget目录
2.目录下建HeaderWidget.class.php
namespace 模块\Widget;
use Think\Controller;
class HeaderWidget extends Controller {
public function abc() {
#与普通控制器方法一样写代码.......
$this->assign('xxx', $xxx);
$this->display('Header:abc');
}
private function xxx() {
#与普通控制器方法一样写代码......
}
#...................
}
3.同模块View目录下建Widget目录
4.目录下与普通一样建模板abc.html,文件名与上面display()里的一致
5.其他html模板调用{:W('Header/abc')}