/** * Add new language * @return string|\yii\web\Response */ public function actionCreate() { $languageForm = Yii::createObject(['class' => Language::className(), 'scenario' => 'create']); if ($languageForm->load(Yii::$app->request->post()) && $languageForm->save()) { Yii::$app->getSession()->setFlash('success', Yii::t('multilang', 'Language was created.')); } else { Yii::$app->getSession()->setFlash('danger', Yii::t('multilang', 'Language creation failed.')); } return $this->redirect(Url::toRoute(['index'])); }
public function validateKeyCodePair($attribute) { $existValidator = \Yii::createObject(['class' => ExistValidator::className(), 'targetClass' => Language::className(), 'targetAttribute' => 'code']); $errorLangExists = null; $existValidator->validate($this->lang_code, $errorLangExists); if (!empty($errorLangExists)) { $this->addError('lang_code', $errorLangExists); } else { if (($testItem = $this->findOne(['key' => $this->key, 'lang_code' => $this->lang_code])) && $testItem->id != $this->id) { $this->addError($attribute, \Yii::t('support', 'Key must be unique for selected language')); } } }
/** @inheritdoc */ public function rules() { return ['usernameRequired' => ['username', 'required', 'on' => ['register', 'create', 'connect', 'update']], 'usernameMatch' => ['username', 'match', 'pattern' => static::$usernameRegexp], 'usernameLength' => ['username', 'string', 'min' => 3, 'max' => 255], 'usernameUnique' => ['username', 'unique', 'message' => Yii::t('user', 'This username has already been taken')], 'usernameTrim' => ['username', 'trim'], 'emailRequired' => ['email', 'required', 'on' => ['register', 'connect', 'create', 'update']], 'emailPattern' => ['email', 'email'], 'emailLength' => ['email', 'string', 'max' => 255], 'emailUnique' => ['email', 'unique', 'message' => Yii::t('user', 'This email address has already been taken')], 'emailTrim' => ['email', 'trim'], 'passwordRequired' => ['password', 'required', 'on' => ['register']], 'passwordLength' => ['password', 'string', 'min' => 6, 'on' => ['register', 'create']], 'langExists' => ['lang', 'exist', 'targetClass' => \jarrus90\Multilang\Models\Language::className(), 'targetAttribute' => 'code']]; }
/** * Validation rules * @return array */ public function rules() { return ['required' => [['key', 'title', 'content', 'lang_code'], 'required', 'on' => ['create', 'update']], 'keyValid' => ['key', 'validateKeyCodePair', 'on' => ['create', 'update']], 'langExists' => ['lang_code', 'exist', 'targetClass' => Language::className(), 'targetAttribute' => 'code'], 'safeSearch' => [['key', 'title', 'lang_code'], 'safe', 'on' => ['search']]]; }
/** * Validation rules * @return array */ public function rules() { return ['processRequired' => [['code', 'name', 'flag', 'is_active'], 'required', 'on' => ['create', 'update']], 'searchSafe' => [['code', 'name', 'is_active'], 'safe', 'on' => ['search']], 'codeUnique' => ['code', 'unique', 'targetClass' => Language::className(), 'message' => Yii::t('multilang', 'Code must be unique'), 'when' => function ($model) { return $model->code != $model->_model->code; }, 'on' => ['create', 'update']]]; }