where( [ 'item_id' => \Yii::$app->request->get('id'), 'item_type' => FieldsValueNew::TYPE_PROFILE, ] ) ->all(); $array = []; if (!empty($fieldValue)) { foreach ($fieldValue as $item) { array_push( $array, [ 'field_id' => $item->field_id, 'value' => $item->value, 'order' => $item->order, 'type_file' => $item->type_file, 'field_name' => $item->field->name ] ); } $this->fields = $array; } else { $this->fields = [ [ 'field_id' => null, 'value' => null, 'order' => null, 'field_name' => null, 'type_file' => null, ], ]; } $skill = ArrayHelper::getColumn( CardSkill::find()->where(['card_id' => \Yii::$app->request->get('id')])->all(), 'skill_id' ); if (!empty($skill)) { $this->skill = $skill; } } public function afterSave($insert, $changedAttributes) { $post = \Yii::$app->request->post('UserCard'); if ($post['fields']) { FieldsValueNew::deleteAll(['item_id' => $this->id, 'item_type' => FieldsValueNew::TYPE_PROFILE]); foreach ($post['fields'] as $item) { $item['value'] = urldecode($item['value']); $fieldsValue = new FieldsValueNew(); $fieldsValue->field_id = $item['field_id']; $fieldsValue->value = $item['value']; $fieldsValue->order = $item['order']; $fieldsValue->item_id = $this->id; $fieldsValue->item_type = FieldsValueNew::TYPE_PROFILE; if(is_file(Yii::getAlias('@frontend') . '/web/' . $item['value'])){ $fieldsValue->type_file = 'file'; }else{ $fieldsValue->type_file = 'text'; } $fieldsValue->save(); } } if ($post['skill']) { CardSkill::deleteAll(['card_id' => $this->id]); foreach ($post['skill'] as $item) { $skill = new CardSkill(); $skill->skill_id = $item; $skill->card_id = $this->id; $skill->save(); } } parent::afterSave($insert, $changedAttributes); // TODO: Change the autogenerated stub } public static function generateUser($email, $status) { $user = new User(); $auth_key = Yii::$app->security->generateRandomString(); $password = Yii::$app->security->generateRandomString(12); $password_hash = Yii::$app->security->generatePasswordHash($password); $user->username = $email; $user->auth_key = $auth_key; $user->password_hash = $password_hash; $user->email = $email; if ($status == 1) $user->status = 10; $user->save(); $log = "Логин: " . $email . " Пароль: " . $password . " | "; file_put_contents("log.txt", $log, FILE_APPEND | LOCK_EX); return $user->id; } public static function genereateLinlkOnUser($user_card, $user_id) { $user_card->id_user = $user_id; $user_card->save(); } public static function generateUserForUserCard($card_id = null) { $userCardQuery = UserCard::find(); $card_id ? $userCardQuery->where(['id' => $card_id]) : $userCardQuery->where(['id_user' => NULL]); $user_card_array = $userCardQuery->all(); $user_array = User::find()->all(); foreach ($user_card_array as $user_card_value) { foreach ($user_array as $user_value) if ($user_card_value->email == $user_value->email) { $user_id = $user_value->id; break; } else $user_id = NULL; if ($user_id) { UserCard::genereateLinlkOnUser($user_card_value, $user_id); } else { $user_id = UserCard::generateUser($user_card_value->email, $user_card_value->status); UserCard::genereateLinlkOnUser($user_card_value, $user_id); } } if ($user_card_array) return "Данные успешно сгенерированы"; else return "Нет данных для генерации"; } public static function getParameter($params, $key) { try { return $params[$key]; } catch (\Exception $e) { return ''; } } }