/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
backend/forms/data/language/LanguageForm.php
120 строк
2 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace backend\forms\data\language; use common\forms\base\ObjectIdForm; use common\helpers\Utf8Helper; use common\kdf\KLanguage; use Yii; use yii\helpers\ArrayHelper; /** * Форма добавления языка * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2024 */ class LanguageForm extends ObjectIdForm { /** * title * @var null */ public $title = null; /** * code2 * @var null */ public $code2 = null; /** * code3 * @var null */ public $code3 = null; /** * @inheritdoc */ public function attributeLabels() { return ArrayHelper::merge(parent::attributeLabels(), [ 'title' => Yii::t('app', 'Language'), 'code2' => Yii::t('app', 'Code 2'), 'code3' => Yii::t('app', 'Code 3'), ]); } /** * @inheritdoc */ public function rules() { return ArrayHelper::merge(parent::rules(), [ [['code2', 'code3', 'title'], 'required'], [['code2', 'code3', 'title'], 'string'], ]); } /** * @inheritdoc */ public function loadModel($condition) { parent::loadModel($condition); $a = KLanguage::getAlias(); $obj = KLanguage::nativeFind() ->alias($a) ->andWhere([ $a . '.id' => $this->oid, ]) ->one(); if ($obj) { $this->initState($obj); } } /** * @inheritdoc */ protected function doSave() { $a = KLanguage::getAlias(); $l = KLanguage::nativeFind() ->alias($a) ->andWhere([ $a . '.id' => $this->oid ]) ->one(); if (!$l) { $l = KLanguage::find() ->andWhere([ 'lower(title)' => Utf8Helper::strtolower($this->title) ]) ->one(); if (!$l) { $l = new KLanguage(); } } $l->setAttributes([ 'title' => $this->title, 'code2' => $this->code2, 'code3' => $this->code3, ]); if (!$l->save()) { $this->addErrors($l->errors); return false; } $this->model = $l; return true; } }