Files
Admin Nasledstvo ac168868ee Initial import
2026-05-01 20:52:04 +03:00

56 lines
1.3 KiB
PHP

<?php
namespace app\models;
use app\models\parsed\ArticleParsedInterface;
/**
* Class Positions
* @package app\models
* @property $id
* @property $group_name
* @property $class_name
* @property $group_id
* @property $position_article_key
* @property Positions[] $positions
* @property int $positionsCount
* @property ArticleParsedInterface $article
* @property Articles $articleModel
*/
class Positions extends _Base
{
public function getPositions()
{
return $this->hasMany(Positions::class, ['group_id' => 'id'])->orderBy(['order_index' => SORT_ASC])->all();
}
public function getPositionsCount()
{
return $this->hasMany(Positions::class, ['group_id' => 'id'])->count();
}
public function getArticleModel()
{
return $this->hasOne(Articles::class, ['key' => 'position_article_key']);
}
public function getArticle()
{
if ($this->position_article_key) {
$table = explode('_', $this->position_article_key);
switch ($table[0]) {
case 'news':
return $this->articleModel->news;
case 'events':
return $this->articleModel->events;
case 'campaigns':
return $this->articleModel->campaigns;
}
}
}
}