where('site_id', Session::get("user_site_id")); } //$query->alias('a')->join('counter c', 'c.item_id=a.id')->where('c.item_type','archive')->field('c.views, c.good, c.bad, c.comments'); } public function Sites() { return $this->belongsTo('Sites', 'site_id')->field('id,name,domain'); } public function Channel() { return $this->belongsTo('Channel', 'channel_id')->field('id,name'); } protected static function init() { self::afterInsert(function ($row) { $pk = $row->getPk(); $row->getQuery()->where($pk, $row[$pk]) ->update(['weigh' => $row[$pk]]); }); self::beforeDelete(function($row){ if (intval($row->isDelete)==0) { $row->isDelete = time(); $row->save(); return false; } }); } public function restore() { return $this->update(['isDelete'=>0]); } public function getViewsAttr($value,$data) { if(!isset($data['id'])) return 0; $result = Counter::get(['item_id'=>$data['id']]); return $result?$result['views']:0; } }