通用获取某个栏目下的内容
相比标签的参数繁琐,fun函数还是非常适用数据的获取,缺点是需要开发者了解php自己获取所需数据
优点是垂直获取直接需要的特有数据。
下面代码可以获取某个栏目下独立的数据,不需要考虑子栏目和父栏目的冗余内容
把代码保存名为Takedata的php文件放入fun目录application\common\fun\Takedata.php调用即可:
<?php namespace app\common\fun; use think\Db; class Takedata { /** * @param int $fid * @param string $module * @return false|\PDOStatement|string|\think\Collection * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public static function getSortData($fid=0,$module='cms',$detail = false){ if($fid==0) return '无此栏目'; $fiddb = Db::name($module.'_content')->where('fid',$fid)->select(); if(!$fiddb) return '此栏目无内容'; if($detail == false){ return $fiddb; }else{ foreach($fiddb AS $value){ $info[] = fun("Content@info",$value['id'],$module); } return $info; } } }
参数一:fid 栏目id;
参数二:模块名称 比如cms
参数三:是否获取详细数据 默认不获取false,需要详细数据设置true
模板案列
<!-- 简单版,只有标题链接数据--> <div> {volist name=":fun('Takedata@getSortData',10)" id="vo"} <p><a href="{:urls('cms/content/show',['id'=>$vo.id])}">{$vo.title}</a></p> {/volist} </div> <!-- 详细版,所有字段数据--> <div> {volist name=":fun('Takedata@getSortData',10,'cms',true)" id="vo"} <p><a href="{:urls('cms/content/show',['id'=>$vo.id])}">{$vo.title}</a></p> <p>{$vo.xxx}</p> {/volist} </div>
来源: 神盾工作室 转载请注明出处!
查看更多评论