You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
792 B
40 lines
792 B
<?php |
|
|
|
namespace common\modules\blog\entities\queries; |
|
|
|
use common\modules\blog\entities\BlogPost; |
|
use yii\db\ActiveQuery; |
|
|
|
class BlogPostQuery extends ActiveQuery |
|
{ |
|
/** |
|
* @param null $alias |
|
* @return $this |
|
*/ |
|
public function active($alias = null) |
|
{ |
|
return $this->andWhere([ |
|
($alias ? $alias . '.' : '') . 'status' => BlogPost::STATUS_ACTIVE, |
|
]); |
|
} |
|
|
|
public function pubDate() |
|
{ |
|
return $this->andWhere(['<', 'published_at', time()]); |
|
} |
|
|
|
public function byType($type) |
|
{ |
|
return $this->andWhere(['type_id' => $type]); |
|
} |
|
|
|
public function last() |
|
{ |
|
return $this->orderBy(['published_at' => SORT_DESC]); |
|
} |
|
|
|
public function popular() |
|
{ |
|
return $this->orderBy(['views' => SORT_DESC]); |
|
} |
|
} |