guild/common/models/ProjectMark.php
2023-01-23 17:50:52 +03:00

81 lines
1.9 KiB
PHP

<?php
namespace common\models;
use Yii;
use yii\helpers\ArrayHelper;
/**
* This is the model class for table "project_mark".
*
* @property int $id
* @property int $project_id
* @property int $mark_id
*
* @property Mark $mark
* @property Project $project
*/
class ProjectMark extends \yii\db\ActiveRecord
{
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'project_mark';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['project_id', 'mark_id'], 'integer'],
[['project_id', 'mark_id'], 'required'],
[['project_id', 'mark_id'], 'unique', 'targetAttribute' => ['project_id', 'mark_id']],
[['mark_id'], 'exist', 'skipOnError' => true, 'targetClass' => Mark::className(), 'targetAttribute' => ['mark_id' => 'id']],
[['project_id'], 'exist', 'skipOnError' => true, 'targetClass' => Project::className(), 'targetAttribute' => ['project_id' => 'id']],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'project_id' => 'Проект',
'mark_id' => 'Метка',
'title' => 'Название',
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getMark()
{
return $this->hasOne(Mark::className(), ['id' => 'mark_id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getProject()
{
return $this->hasOne(Project::className(), ['id' => 'project_id']);
}
public static function getMarkNotAtProject($project_id): array
{
$markIdList = ProjectMark::find()->where(['project_id' => $project_id])->select('mark_id')->column();
$marks = Mark::find()
->where(['not in', 'id', $markIdList])
->all();
return ArrayHelper::map($marks, 'id', 'title');
}
}