validateAsk('Введите имя пользователя', ['string|max:255']); if ($this->confirm('Хотите создать пользователя со случайным паролем?')) { $password = Str::random(8); $this->info('Созданный пароль: ' . $password); } else { $password = $this->validateAsk('Введите пароль', ['string|min:8']); } $email = $this->validateAsk('Введите email', ['email']); User::create([ 'name' => $username, 'email' => $email, 'password' => bcrypt($password), 'email_verified_at' => Carbon::now(), 'role_uuid' => Role::where('code', 'user')->value('uuid'), ]); $this->info('Пользователь создан!'); } private function validateAsk(string $question, array $rules, bool $isSecret = false) { if ($isSecret) { $value = $this->secret($question); } else { $value = $this->ask($question); } $validate = $this->validateInput($rules, $value); if ($validate !== true) { $this->error($validate); $value = $this->validateAsk($question, $rules); } return $value; } private function validateInput($rules, $value) { $validator = Validator::make([key($rules) => $value], $rules); if ($validator->fails()) { return $validator->errors()->first(key($rules)); } return true; } }