Ai
4 Star 1 Fork 0

Gitee 极速下载/tipask

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/sdfsky/tipask
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Taggable.php 1.41 KB
一键复制 编辑 原始数据 按行查看 历史
sdfsky 提交于 2019-10-15 16:10 +08:00 . add v3.5 featrue
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
class Taggable extends Model
{
protected $table = 'taggables';
protected $fillable = ['source_type', 'source_id', 'tag_id'];
public $timestamps = false;
public static function hottest($type='all',$pageSize=20)
{
$tagIds = Tag::pluck('id');
$query = DB::table('taggables')->select('tag_id',DB::raw('COUNT(id) as total_num'))
->whereIn('tag_id',$tagIds);
if($type=='questions'){
$query->where('taggable_type','=','App\Models\Question');
}elseif($type=='articles'){
$query->where('taggable_type','=','App\Models\Article');
}
$taggables = $query->groupBy('tag_id')
->orderBy('total_num','desc')
->paginate($pageSize);
return $taggables;
}
/*全局热门标签*/
public static function globalHotTags( $type='all' )
{
return Cache::remember('hot_tags_'.$type,300,function() use($type){
$tags = self::hottest($type,25);
$tags->map(function($tag){
$tagInfo = Tag::find($tag->tag_id);
if(!$tagInfo){
$tag->name = '';
}else{
$tag->name = $tagInfo->name;
}
});
return $tags;
});
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/mirrors/tipask.git
git@gitee.com:mirrors/tipask.git
mirrors
tipask
tipask
master

搜索帮助