ThinkPHP第十八天(Widget类的使用,连贯操作where IN用法,缓存S函数使用)

1、Widget类的使用方法:

  第一步:在Action同级目录中新建Widget文件夹(独立分组需要自己建立)

  第二步:根据不同功能在Widget文件夹中建立不同的Widget类,如热门文章HotWidget.class.php,最新文章NewWidget.class.php等

  第三步:在Widget文件夹中根据不同类的名称建立相应名称的模板文件夹,如HotWidget的模板文件夹问Hot,并在里面新建一个模板文件Hot.html(注意大小      写区分),在模板文件中接收下一步传递过来的数据,并显示。

  第四步:Widget类,定义细则

Class HotWidget extends Widget{// 都继承与Widget类,3.2版本废弃了Widget类 改成了和控制器一样Controller实现widget
    
    function render($data){//使用render方法
        
        $hotList = M('blog')->field(array('id','title'))->limit(5)->select();//调用热点文章
       
        $show['hot'] = $hotList;//数组方式,用于将数据传递给模板
       
        return $this->renderFile('',$show);//Widget的renderFile方法用于载入模板文件,并赋值。这里只是载入,必须返回,前端才能使用。
        
    }  
}

  第五步:前端模板调用定义好的Widget类方法

    {:W('Hot',[参数如果需要])} //这里的参数是数组形式,在上面类定义中render($data)中的$data用于接收。

2、where 连贯操作IN用法:(参考表达式查询方式)可以用于选择或者删除多条数据

  假设 $cid = array(1,3,5,7,9);

  $where = array('id'=>array('IN',$cid));

  连贯操作where中条件数组,有两个以上条件时,默认关系是AND

  $where = array('name'=>$username,'password'=>$password),转化成SQL为name=$username AND password=$password,如果要改变逻辑关系可以在$where数组中加入_logic=>'or'方式改变。

3、S(缓存名,缓存数据,保存周期单位为秒)函数

  建立缓存 S('slist',$list,3600) 表示将$list数据建立缓存,名为slist,缓存时间是1小时

  读取缓存 $list = S('slist') 将保存的名为slist的缓存数据读取,保存为$list,在类中使用该数据。

原文地址:https://www.cnblogs.com/huilange/p/3432682.html