获取某个栏目下的内容

相比标签的参数繁琐,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>

附件下载

好友
朋友圈
收藏夹
  • 0737-82202733
  • 立即扫码添加我吧

请选择要切换的马甲: