通用获取某个栏目下的内容

2021-12-05 作者:torylf 分类:实用技巧 阅读:1353

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


来源: 神盾工作室    转载请注明出处!

本文地址:https://www.shieldsoho.com/article/125.html

 标签: 实用技巧 齐博X1
{{item.nickname}} @回复
发表于{{item.create_time}}

  • {{replyitem.nickname}} {{item.create_time}}
    @{{item.nickname}}

查看更多评论