/
peyli
/
Practice
Обзор
Документация
Войти
/
peyli
/
Practice
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
models/Event.php
114 строк
3 KB
Катя
Полный код
27 июн 2026, 14:28
27 июн 2026, 14:28
6181a72
Код
Авторство
О чём код?
<?php namespace app\models; use Yii; /** * This is the model class for table "event". * * @property int $id * @property string $title * @property string $user_username * @property string $event_type * @property string $place * @property int $price * @property string $description * @property string|null $cover * @property string $start * @property string|null $end * @property string|null $status * @property string|null $created_at * @property string|null $cancel_reason * * @property Type $eventType * @property Participant[] $participants * @property User $userUsername */ class Event extends \yii\db\ActiveRecord { /** * {@inheritdoc} */ public static function tableName() { return 'event'; } /** * {@inheritdoc} */ public function rules() { return [ [['cover', 'end', 'cancel_reason'], 'default', 'value' => null], [['status'], 'default', 'value' => 'planned'], [['title', 'place', 'price', 'description', 'start'], 'required', 'message' => 'Необходимо заполнить'], [['price'], 'integer', 'min' => 0, 'message' => 'Цена должна быть больше или равна нулю'], [['description'], 'string'], [['cancel_reason'], 'string'], [['start', 'end', 'created_at'], 'safe'], [['title', 'user_username', 'event_type', 'place', 'cover', 'status'], 'string', 'max' => 255], [['user_username'], 'exist', 'skipOnError' => true, 'targetClass' => User::class, 'targetAttribute' => ['user_username' => 'username']], [['event_type'], 'exist', 'skipOnError' => true, 'targetClass' => Type::class, 'targetAttribute' => ['event_type' => 'name']], [['user_username'], 'default', 'value' => Yii::$app->user->identity->username], // [['start', 'end'], 'datetime'], // [['start'], 'date', 'format' => 'php:d.m.Y', 'max' => date('d.m.Y'), 'tooBig' => 'Дата'], // [['end'], 'date', 'min' => $this->start, 'message' => 'Дата окончания не должна быть меньше даты начала'] ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'title' => 'Название', 'user_username' => 'Организатор', 'event_type' => 'Тип', 'place' => 'Место проведения', 'price' => 'Вход', 'description' => 'Описание', 'cover' => 'Обложка', 'cancel_reason' => 'Причина отмены мероприятия', 'start' => 'Начало', 'end' => 'Конец', ]; } /** * Gets query for [[EventType]]. * * @return \yii\db\ActiveQuery */ public function getEventType() { return $this->hasOne(Type::class, ['name' => 'event_type']); } /** * Gets query for [[Participants]]. * * @return \yii\db\ActiveQuery */ public function getParticipants() { return $this->hasMany(Participant::class, ['event_id' => 'id']); } /** * Gets query for [[UserUsername]]. * * @return \yii\db\ActiveQuery */ public function getUserUsername() { return $this->hasOne(User::class, ['username' => 'user_username']); } }