联系官方销售客服

1835022288

028-61286886

求助 版主:论坛审计组
查询判断当前登录用户是否收藏了这篇文章
类型:迅睿CMS 更新时间:2020-11-25 15:39:48

模板标签里面

查询判断当前登录用户是否收藏了这篇文章?用 table 查询吗?

这个操作走了缓存吗?每篇文章都查一次哦?好痛苦!感觉很消耗资源


{table table=1_news_favorite uid=$member.id cid=$id}

{$t.id}

{/table}



回帖
  • 易学习
    #1楼    易学习
    2019-11-29 16:38:10
    Chrome 0
    用自定义函数,然后做缓存
    满意答案
  • 黄老邪
    #2楼    黄老邪
    2019-11-29 16:38:41
    Chrome 0

    {table table=1_news_favorite uid=$member.id cid=$id cahe=缓存时间}

    {$t.id}

    {/table}

  • Booid.com
    #3楼    Booid.com
    2019-11-29 16:44:46
    Chrome 0
    易学习我用了自定义函数,但是出来就系统报错
     {function name=my_favorites param=$member.id cache=0 return=f}{$f}{/function}
    function my_favorites($id) {
        // 这里是写查询
    	$rt = \Phpcmf\Service::M()->db->table('dr_1_news_favorite')->where('uid', $id)->get();
    	if ($rt) {
    	  $rows = $rt->getResultArray();
    	  return $rows; 
    	}
    }
  • Booid.com
    #4楼    Booid.com
    2019-11-29 16:51:02
    Chrome 0
    楼上我想过了,不过可能当时没转弯过来,善用数组的话,就简单了
    {table table=1_news_favorite uid=$member.id  cache=3600}
    {php $my_favorites[] = $t.cid;}
    {/table}
    <?php
      if(in_array($cid, $my_favorites)){  
    
      echo '在数组中存在';
    
      } else {  
    
      echo '在数组中不存在';
    
      }
    ?>
  • 易学习
    #5楼    易学习
    2019-11-29 17:04:24
    Chrome 0
    {function name=my_favorites param=$member.id,$id cache=1110 return=f}
    {if $f}
    ok
    {else}
    no
    {/if}
    {/function}
    function my_favorites($param) {
    // 这里是写查询
    list($uid, $cid) = explode($param);
    return \Phpcmf\Service::M()->table('dr_1_news_favorite')->where('uid', (int)$uid)->where('cid', (int)$cid)->counts();;
    }
  • Booid.com
    #6楼    Booid.com
    2019-11-29 17:09:13
    Chrome 0
    易学习我试过了,已收藏还是会显示 NO ,不然我也不会提问了,就觉得好奇怪!
  • Booid.com
    #7楼    Booid.com
    2019-11-29 17:10:16
    Chrome 0
    易学习出来的值永远是 0
  • 易学习
    #8楼    易学习
    2019-11-29 17:11:50
    Chrome 0
    实测有效的
  • 易学习
    #9楼    易学习
    2019-11-29 17:15:25
    Chrome 0
    {function name=my_favorites param=1,2 cache=1110 return=f}
    {if $f}
    ok
    {else}
    no
    {/if}
    {/function}
    Booid.com用死数据测试,1表示用户id,2表示文章id我用死数据和变量都可以显示ok
  • Booid.com
    #10楼    Booid.com
    2019-11-29 17:29:45
    Chrome 0
    易学习那我只能哭了,本地环境,2个网站测,都是不能正常显示的!等我上线了再回来结贴吧
  • Booid.com
    #11楼    Booid.com
    2020-11-25 15:39:48
    Chrome 0
    @易学习:完结之后本帖将不再提供回复