Initial import
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
<?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;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user