コード例 #1
0
 /**
  * Привязка дисконтной карты
  */
 public function actionIndex()
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     $model = new DiscountCardForm();
     if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
         if (!$model->validate()) {
             return ['result' => false, 'message' => Html::errorSummary($model, ['header' => false, 'class' => 'alert alert-danger'])];
         }
         $userCard = new UserCard();
         $userCard->card = $model->fullName;
         $result = $userCard->getInfo();
         /** @var \novatorgroup\usercard\Module $module */
         $module = Yii::$app->getModule('card');
         if (isset($result->type)) {
             $module->afterCheckCard($model);
             return ['result' => true];
         } else {
             $module->errorCheckCard($model, $result->error);
             return ['result' => false, 'message' => Html::tag('div', $result->error, ['class' => 'alert alert-danger'])];
         }
     }
     return ['result' => false, 'message' => 'Ошибка привязки карты'];
 }
コード例 #2
0
 /**
  * @param bool|false $delete если удаляется оснавная модель
  * @throws Exception
  * @throws \yii\base\InvalidConfigException
  */
 public function mergeRelation($delete = false)
 {
     foreach ($this->relations as $relation) {
         $this->relationModels[$relation] = [];
         $modelDelete = [];
         $modelSave = [];
         if ($delete && $this->owner->{$relation}) {
             $modelDelete = $this->owner->{$relation};
             // обновляем релейшин, если в CurrentValue он явно задан
         } elseif (key_exists($relation, $this->relationNewValue) && is_array($this->relationNewValue[$relation])) {
             // находим имя PK
             $getter = 'get' . $relation;
             /** @var ActiveRecord $modelClass */
             $modelClass = $this->owner->{$getter}()->modelClass;
             $pk = $modelClass::primaryKey();
             if (!isset($pk[0])) {
                 throw new Exception('Ключ не задан');
             }
             foreach ($this->relationNewValue[$relation] as $key => $values) {
                 $model = null;
                 $arrayPk = [];
                 foreach ($pk as $field) {
                     $arrayPk[$field] = isset($values[$field]) ? $values[$field] : null;
                 }
                 $model = $modelClass::findOne([$arrayPk]);
                 if ($model && isset($this->scenarios[$relation]['update'])) {
                     $model->scenario = $this->scenarios[$relation]['update'];
                 }
                 if (!$model) {
                     $config = [];
                     if (method_exists($modelClass, 'setFormName')) {
                         $config = ['formName' => $key];
                     }
                     $model = new $modelClass($config);
                     $model->scenario = ArrayHelper::getValue($this->scenarios, $relation . '.create', Model::SCENARIO_DEFAULT);
                 }
                 /** @var ActiveRecord $model */
                 $model->setAttributes(array_merge($this->getRelationFk($relation), $values));
                 $modelSave[] = $model;
             }
             // если не только добавление, но и удаление связанной модели, то сверяем:
             if (!$this->onlyAdd && $this->owner->{$relation}) {
                 foreach ($this->owner->{$relation} as $oldModel) {
                     $found = false;
                     /** @var ActiveRecord $newModel */
                     foreach ($modelSave as $newKey => $newModel) {
                         if ($oldModel->primaryKey == $newModel->primaryKey) {
                             $found = true;
                             break;
                         }
                     }
                     // Если запись в текущих данных нет, значит ее нужно удалить.
                     if (!$found) {
                         $modelDelete[] = $oldModel;
                     }
                 }
             }
         }
         /** @var ActiveRecord $model */
         foreach ($modelDelete as $model) {
             if (!$model->delete()) {
                 $this->errors[$relation][] = strip_tags(Html::errorSummary($model));
             }
             $this->relationModels[$relation][] = $model;
         }
         /** @var ActiveRecord $model */
         foreach ($modelSave as $model) {
             if (!$model->save()) {
                 $this->errors[$relation][] = strip_tags(Html::errorSummary($model));
             }
             $this->relationModels[$relation][] = $model;
         }
     }
 }
コード例 #3
0
ファイル: addsensor.php プロジェクト: ICHydro/anaconda
                            <div class="col-lg-4">
                                <?php 
echo \Yii::t('app', 'SENSOR ADMIN MAIL');
?>
                                <br /><?php 
echo \Yii::t('app', 'Who will be uploading data?');
?>
                            </div>  
                            <div class="col-lg-8">
                                <?php 
echo Html::activeInput('text', $model, 'admin_email');
?>
                            </div>  
                            <div class="col-lg-12 text-center">
                                <?php 
echo Html::errorSummary($model);
?>

                                <?php 
echo Html::submitButton('<span class="glyphicon glyphicon-check"></span> ' . ($model->isNewRecord ? \Yii::t('app', 'Create sensor') : \Yii::t('app', 'Save sensor')), ['id' => 'save-' . $model->formName(), 'class' => 'btn btn-danger']);
?>
                            </div>  
                            <div class="col-lg-12">
                                <br /><br /><br />
                            </div>  
                        </div>
                        <?php 
Html::endForm();
?>
                        <br /><br /><br />
                    </div>