* @copyright (c), Thread */ class Group extends \thread\modules\news\models\Group implements BaseFrontModel, SeoFrontModel { /** * * @return array */ public function behaviors() { return []; } /** * * @return array */ public function scenarios() { return []; } /** * * @return array */ public function attributeLabels() { return []; } /** * * @return array */ public function rules() { return []; } /** * @return mixed */ public function getLang() { return $this->hasOne(GroupLang::class, ['rid' => 'id']); } /** * @return mixed */ public function getArticles() { return $this->hasMany(Article::class, ['group_id' => 'id']); } /** * @return mixed */ public static function find() { return parent::find()->enabled()->innerJoinWith(["lang"]); } /** * @return mixed */ public static function findBase() { return self::find(); } /** * @return mixed */ public static function findSeo() { return self::find(); } /** * @param $id * @return mixed */ public static function findById($id) { return self::findBase()->byID($id); } /** * @param $alias * @return mixed */ public static function findByAlias($alias) { return self::findBase()->byAlias($alias); } /** * @param $id * @return mixed */ public static function getById($id) { return self::findById($id)->one(); } /** * @param $alias * @return mixed */ public static function getByAlias($alias) { return self::findByAlias($alias)->one(); } /** * @param bool|false $scheme * @return string */ public function getUrl($scheme = false) { return Url::toRoute(['/news/list/by-group', 'alias' => $this->alias], $scheme); } /** * @return mixed */ public static function getAllWithLabel() { return self::find()->all(); } }