hasOne(User::class,'uid','uid'); } public function topic() { return $this->hasOne(CommunityTopic::class,'topic_id','topic_id'); } public function reply() { return $this->hasMany(CommunityReply::class,'community_id','community_id'); } public function relevance() { return $this->hasMany(Relevance::class, 'left_id','community_id') ->where('type',RelevanceRepository::TYPE_COMMUNITY_PRODUCT); } /* * 右侧为内容ID的 */ public function relevanceRight() { return $this->hasMany(Relevance::class, 'right_id','community_id'); } public function isStart() { return $this->hasOne(Relevance::class, 'right_id','community_id')->where('type', RelevanceRepository::TYPE_COMMUNITY_START)->bind(['relevance_id']); } public function isFans() { return $this->hasOne(Relevance::class, 'right_id','uid')->where('type', RelevanceRepository::TYPE_COMMUNITY_FANS)->bind(['is_fans' => 'right_id']); } public function category() { return $this->hasOne(CommunityCategory::class, 'category_id','category_id'); } public function getTimeAttr() { return date('m月d日',strtotime($this->create_time)); } public function getCountReplyAttr() { return CommunityReply::where('community_id',$this->community_id)->where('status',1)->count(); } public function searchTopicIdAttr($query, $value) { $query->where('topic_id', $value); } public function searchTitleAttr($query, $value) { $query->whereLike('title', "%{$value}%"); } public function searchKeywordAttr($query, $value) { $query->whereLike('title|content', "%{$value}%"); } public function searchCategoryIdAttr($query, $value) { $query->where('category_id', $value); } public function searchIsShowAttr($query, $value) { $query->where('is_show', $value); } public function searchStatusAttr($query, $value) { $query->where('status', $value); } public function searchUidAttr($query, $value) { $query->where('uid', $value); } public function searchIsHotAttr($query, $value) { $query->where('is_hot', $value); } public function searchUidsAttr($query, $value) { $query->whereIn('uid', $value); } public function searchSpuIdAttr($query, $value) { $id = Relevance::where('right_id',$value) ->where('type',RelevanceRepository::TYPE_COMMUNITY_PRODUCT) ->column('left_id'); $query->where('community_id','in', $id); } public function searchIsTypeAttr($query, $value) { $query->whereIn('is_type', $value); } public function searchCommunityIdAttr($query, $value) { $query->where('community_id', $value); } public function searchNotIdAttr($query, $value) { $query->where('community_id', '<>',$value); } }