欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?

程序员文章站 2022-06-10 15:47:24
...

看到一份Thinkphp做微博开发的代码,但有些地方没有看懂:
。控制器中的代码:

/*
    • 首页视图
      */

    1. function Index(){

             //p(S('usermsg'.session('uid')));
             //replace_weibo('adsf');
             //p(C('FILTER'));
             $db=D('Weibo');
             
             //取得当前用户的ID与当前用户 所有关注好友的ID
             
             $uid = array(session('uid'));//????
             $where=array('fans'=>session('uid'));
             
             if (isset($_GET['gid'])){
                 $gid = I('gid','','intval');
                 $where['gid']=$gid;
                 $uid = '';
             }
             
             $result =M('follow')->where($where)->field('follow')->select();
             if($result){
                 foreach ($result as $v){
                     $uid[] = $v['follow'];
                 }
             }
             
             //组合WHERE条件,条件为当前用户自身的ID与当前用户所关注好友的ID
             $where = array('uid'=>array('IN',$uid));//where条件可以是二维数组吗?
             
             //统计数据总条数,用于分页
             $count  = $db->where($where)->count();// 查询满足要求的 总记录数  
             $Page       = new \Think\Page($count,20);// 实例化分页类 传入总记录数和每页显示的记录数(20)
             // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
             $limit=$Page->firstRow.','.$Page->listRows;
             $Page->setConfig('theme',"共 %TOTAL_ROW% 条记录 %FIRST% %UP_PAGE% %NOW_PAGE% / %TOTAL_PAGE% %DOWN_PAGE% %END% ");
             $Page->setConfig('prev','上一页');
             $Page->setConfig('next','下一页');
             
             //读取所有微博
             $result= $db->getAll($where,$limit);//getAll()方法是驱动拓展里的
             //p($result);
             $this->page= $Page->show();// 分页显示输出
             $this -> weibo = $result;
             $this->display();
             
         }
         

      。视图中的代码:

    》》》》》
    重点在这里:用户的头像$V.face 不知是来自哪里的。
    weibo这个表中并没有face这一列,也没看到代码中去读取了另一个表中的信息,
    它的weibo表结构是这样的:
    Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?

    头像信息可能是来自这个表:
    Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?

    但首页这个表中也只有face50 face80 face180 而没有face这一列。

    想请问它是怎样把不同表的数据放到同一个foreach中处理的?

    原代码来自:https://github.com/milkbobo/Thinkphp3.2.3-weibo

    回复内容:

    看到一份Thinkphp做微博开发的代码,但有些地方没有看懂:
    。控制器中的代码:

    /*
    • 首页视图
      */

    1. function Index(){

             //p(S('usermsg'.session('uid')));
             //replace_weibo('adsf');
             //p(C('FILTER'));
             $db=D('Weibo');
             
             //取得当前用户的ID与当前用户 所有关注好友的ID
             
             $uid = array(session('uid'));//????
             $where=array('fans'=>session('uid'));
             
             if (isset($_GET['gid'])){
                 $gid = I('gid','','intval');
                 $where['gid']=$gid;
                 $uid = '';
             }
             
             $result =M('follow')->where($where)->field('follow')->select();
             if($result){
                 foreach ($result as $v){
                     $uid[] = $v['follow'];
                 }
             }
             
             //组合WHERE条件,条件为当前用户自身的ID与当前用户所关注好友的ID
             $where = array('uid'=>array('IN',$uid));//where条件可以是二维数组吗?
             
             //统计数据总条数,用于分页
             $count  = $db->where($where)->count();// 查询满足要求的 总记录数  
             $Page       = new \Think\Page($count,20);// 实例化分页类 传入总记录数和每页显示的记录数(20)
             // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
             $limit=$Page->firstRow.','.$Page->listRows;
             $Page->setConfig('theme',"共 %TOTAL_ROW% 条记录 %FIRST% %UP_PAGE% %NOW_PAGE% / %TOTAL_PAGE% %DOWN_PAGE% %END% ");
             $Page->setConfig('prev','上一页');
             $Page->setConfig('next','下一页');
             
             //读取所有微博
             $result= $db->getAll($where,$limit);//getAll()方法是驱动拓展里的
             //p($result);
             $this->page= $Page->show();// 分页显示输出
             $this -> weibo = $result;
             $this->display();
             
         }
         

      。视图中的代码:

    》》》》》
    重点在这里:用户的头像$V.face 不知是来自哪里的。
    weibo这个表中并没有face这一列,也没看到代码中去读取了另一个表中的信息,
    它的weibo表结构是这样的:
    Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?

    头像信息可能是来自这个表:
    Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?

    但首页这个表中也只有face50 face80 face180 而没有face这一列。

    想请问它是怎样把不同表的数据放到同一个foreach中处理的?

    原代码来自:https://github.com/milkbobo/Thinkphp3.2.3-weibo

    Index/Home/Model/CommentModel.class.php

    10 'id','content','time','wid',//'uid',
    11 '_type'=>'LEFT'
    12 ),
    13 'userinfo'=>array(
    14 'username','face50'=>'face','uid',
    15 '_on'=>'comment.uid = userinfo.uid'
    16 ),

    Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?
  • 专题推荐

    相关标签: thinkphp php