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

WBOY
Freigeben: 2016-06-06 20:17:16
Original
1272 Leute haben es durchsucht

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

<code>/*</code>
Nach dem Login kopieren
    • 首页视图
      */

    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>
      Nach dem Login kopieren
      Nach dem Login kopieren

      。视图中的代码:

    <foreach name="weibo" item="v">
        <if condition='!$v["isturn"]'>
    <!--====================普通微博样式====================-->
                <div class="weibo">
                    <!--头像-->
                    <div class="face">
                        <a href="%7B:U('/'%20.%20%24v%5B'uid'%5D)%7D">
                            <img  src="<if%20condition='%24v%5B" face alt="Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?" >
                                __ROOT__/Uploads/Face/{$v.face}
                            <else></else>
                                __PUBLIC__/Images/noface.gif
                            " width='50' height='50'/>
                        </a>
                    </div>
                
    <p>》》》》》<br>重点在这里:用户的头像$V.face 不知是来自哪里的。<br>weibo这个表中并没有face这一列,也没看到代码中去读取了另一个表中的信息,<br>它的weibo表结构是这样的:<br><img  data-src="/img/bVs13V" alt="Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?" ></p>
    <p>头像信息可能是来自这个表:<br><img  data-src="/img/bVs13Z" alt="Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?" ></p>
    <p>但首页这个表中也只有face50  face80  face180 而没有face这一列。</p>
    <p>想请问它是怎样把不同表的数据放到同一个foreach中处理的?</p>
    <p>原代码来自:https://github.com/milkbobo/Thinkphp3.2.3-weibo</p>
    
                                
                            
    
    
                                                                                                                            
                         <h2>回复内容:</h2>
                          
                                                                
    <p>看到一份Thinkphp做微博开发的代码,但有些地方没有看懂:<br>一<strong>。控制器中的代码:</strong></p>
    <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;code&gt;/*&lt;/code&gt;</pre><div class="contentsignin">Nach dem Login kopieren</div></div>
    <li><ul><li><p>首页视图<br>*/</p></li></ul></li>
    <ol><li>
    <p>function Index(){</p>
    <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;code&gt;       //p(S('usermsg'.session('uid')));
           //replace_weibo('adsf');
           //p(C('FILTER'));
           $db=D('Weibo');
           
           //取得当前用户的ID与当前用户 所有关注好友的ID
           
           $uid = array(session('uid'));//????
           $where=array('fans'=&gt;session('uid'));
           
           if (isset($_GET['gid'])){
               $gid = I('gid','','intval');
               $where['gid']=$gid;
               $uid = '';
           }
           
           $result =M('follow')-&gt;where($where)-&gt;field('follow')-&gt;select();
           if($result){
               foreach ($result as $v){
                   $uid[] = $v['follow'];
               }
           }
           
           //组合WHERE条件,条件为当前用户自身的ID与当前用户所关注好友的ID
           $where = array('uid'=&gt;array('IN',$uid));//where条件可以是二维数组吗?
           
           //统计数据总条数,用于分页
           $count  = $db-&gt;where($where)-&gt;count();// 查询满足要求的 总记录数  
           $Page       = new \Think\Page($count,20);// 实例化分页类 传入总记录数和每页显示的记录数(20)
           // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
           $limit=$Page-&gt;firstRow.','.$Page-&gt;listRows;
           $Page-&gt;setConfig('theme',&quot;共 %TOTAL_ROW% 条记录 %FIRST% %UP_PAGE% %NOW_PAGE% / %TOTAL_PAGE% %DOWN_PAGE% %END% &quot;);
           $Page-&gt;setConfig('prev','上一页');
           $Page-&gt;setConfig('next','下一页');
           
           //读取所有微博
           $result= $db-&gt;getAll($where,$limit);//getAll()方法是驱动拓展里的
           //p($result);
           $this-&gt;page= $Page-&gt;show();// 分页显示输出
           $this -&gt; weibo = $result;
           $this-&gt;display();
           
       }
       &lt;/code&gt;</pre><div class="contentsignin">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div>
    <p>二<strong>。视图中的代码:</strong></p>
    </li></ol>
    <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;code&gt;&lt;foreach name=&quot;weibo&quot; item=&quot;v&quot;&gt;
        &lt;if condition='!$v[&quot;isturn&quot;]'&gt;
    &lt;!--====================普通微博样式====================--&gt;
                &lt;div class=&quot;weibo&quot;&gt;
                    &lt;!--头像--&gt;
                    &lt;div class=&quot;face&quot;&gt;
                        &lt;a href=&quot;%7B:U('/'%20.%20%24v%5B'uid'%5D)%7D&quot;&gt;
                            &lt;img  src=&quot;&lt;if%20condition='%24v%5B&quot; face alt=&quot;Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?&quot; &gt;
                                __ROOT__/Uploads/Face/{$v.face}
                            &lt;else&gt;&lt;/else&gt;
                                __PUBLIC__/Images/noface.gif
                            &quot; width='50' height='50'/&gt;
                        &lt;/a&gt;
                    &lt;/div&gt;
                
    &lt;p&gt;》》》》》&lt;br&gt;重点在这里:用户的头像$V.face 不知是来自哪里的。&lt;br&gt;weibo这个表中并没有face这一列,也没看到代码中去读取了另一个表中的信息,&lt;br&gt;它的weibo表结构是这样的:&lt;br&gt;&lt;img  data-src=&quot;/img/bVs13V&quot; alt=&quot;Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?&quot; &gt;&lt;/p&gt;
    &lt;p&gt;头像信息可能是来自这个表:&lt;br&gt;&lt;img  data-src=&quot;/img/bVs13Z&quot; alt=&quot;Thinkphp3.2的模板中同一个foreach中要用到不同表的数据,应该怎样处理?&quot; &gt;&lt;/p&gt;
    &lt;p&gt;但首页这个表中也只有face50  face80  face180 而没有face这一列。&lt;/p&gt;
    &lt;p&gt;想请问它是怎样把不同表的数据放到同一个foreach中处理的?&lt;/p&gt;
    &lt;p&gt;原代码来自:https://github.com/milkbobo/Thinkphp3.2.3-weibo&lt;/p&gt;
    
                                
                            
                &lt;p class=&quot;answer fmt&quot; data-id=&quot;1020000004497633&quot;&gt;
                                        
    &lt;/p&gt;
    &lt;p&gt;Index/Home/Model/CommentModel.class.php &lt;/p&gt;
    &lt;p&gt;10                'id','content','time','wid',//'uid',&lt;br&gt;11                '_type'=&gt;'LEFT'&lt;br&gt;12            ),&lt;br&gt;13            'userinfo'=&gt;array(&lt;br&gt;14                'username','face50'=&gt;'face','uid',&lt;br&gt;15                '_on'=&gt;'comment.uid = userinfo.uid'&lt;br&gt;16            ),&lt;/p&gt;
    
                                &lt;/div&gt;&lt;/if&gt;&lt;/foreach&gt;&lt;/code&gt;</pre><div class="contentsignin">Nach dem Login kopieren</div></div>
    </div></if></foreach>
    Verwandte Etiketten:
    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage