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

php中文网
发布: 2016-06-06 20:17:16
原创
1539人浏览过

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

<code>/*</code>
登录后复制
    1. function Index(){

      <code>       //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();
             
         }
         </code>
      登录后复制

      。视图中的代码:

    <code><foreach name='weibo' item='v'>
        <if condition='!$v["isturn"]'>
    <!--====================普通微博样式====================-->
                <div class="weibo">
                    <!--头像-->
                    <div class="face">
                        <a href="{:U('/' . $v['uid'])}">
                            @@##@@
                                __ROOT__/Uploads/Face/{$v.face}
                            <else/>
                                __PUBLIC__/Images/noface.gif
                            </if>" width='50' height='50'/>
                        </a>
                    </div>
                </code>
    登录后复制

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

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

    立即学习PHP免费学习笔记(深入)”;

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

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

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

    回复内容:

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

    <code>/*</code>
    登录后复制
    • 首页视图
      */

    1. function Index(){

      <code>       //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();
             
         }
         </code>
      登录后复制

      。视图中的代码:

    <code><foreach name='weibo' item='v'>
        <if condition='!$v["isturn"]'>
    <!--====================普通微博样式====================-->
                <div class="weibo">
                    <!--头像-->
                    <div class="face">
                        <a href="{:U('/' . $v['uid'])}">
                            @@##@@
                                __ROOT__/Uploads/Face/{$v.face}
                            <else/>
                                __PUBLIC__/Images/noface.gif
                            </if>" width='50' height='50'/>
                        </a>
                    </div>
                </code>
    登录后复制

    》》》》》
    重点在这里:用户的头像$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中要用到不同表的数据,应该怎样处理?Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?
    相关标签:
    PHP速学教程(入门到精通)
    PHP速学教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号