РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1329 of 1392 menu

Метод ask

Метод ask класса Command предназначен для организации интерактивного взаимодействия с пользователем в консольных приложениях Laravel. Первым параметром передаётся текст вопроса, вторым - значение по умолчанию (необязательно). Метод приостанавливает выполнение команды до тех пор, пока пользователь не введёт ответ и не нажмёт Enter. Возвращаемое значение - строка, введённая пользователем.

Синтаксис

<?php $this->ask($question, $default = null); ?>

Метод принимает два параметра:

$question - текст вопроса, который будет отображён пользователю;

$default - значение, которое будет использовано, если пользователь просто нажмёт Enter (необязательный параметр).

Пример

Давайте создадим консольную команду, которая запрашивает у пользователя его имя:

<?php namespace AppConsoleCommands; use IlluminateConsoleCommand; class GreetCommand extends Command { protected $signature = 'greet'; protected $description = 'Greet the user'; public function handle() { $name = $this->ask('What is your name?'); $this->info("Hello, {$name}!"); } } ?>

Результат выполнения команды:

"What is your name?" "> John" "Hello, John!"

В этом примере метод ask выводит вопрос "What is your name?" и ожидает ввода. После того как пользователь вводит имя и нажимает Enter, метод возвращает введённую строку, которая затем используется для вывода приветствия.

Пример

Используем второй параметр для установки значения по умолчанию:

<?php namespace AppConsoleCommands; use IlluminateConsoleCommand; class NameCommand extends Command { protected $signature = 'name'; protected $description = 'Get user name'; public function handle() { $name = $this->ask('What is your name?', 'Guest'); $this->info("Hello, {$name}!"); } } ?>

Результат выполнения команды:

"What is your name? [Guest]" "> " "Hello, Guest!"

Если пользователь нажимает Enter без ввода, используется значение по умолчанию "Guest". В квадратных скобках отображается подсказка с этим значением.

Пример

Метод ask часто используется для получения данных, необходимых для дальнейшей работы команды:

<?php namespace AppConsoleCommands; use IlluminateConsoleCommand; use AppModelsUser; use IlluminateSupportFacadesHash; class CreateUserCommand extends Command { protected $signature = 'user:create'; protected $description = 'Create a new user'; public function handle() { $name = $this->ask('Enter user name'); $email = $this->ask('Enter user email'); $password = $this->secret('Enter password'); User::create([ 'name' => $name, 'email' => $email, 'password' => Hash::make($password), ]); $this->info('User created successfully!'); } } ?>

Результат выполнения команды:

"Enter user name" "> John Doe" "Enter user email" "> john@example.com" "Enter password" "> ******" "User created successfully!"

Здесь метод ask используется для получения имени и email пользователя, а метод secret - для скрытого ввода пароля.

Смотрите также

  • метод choice,
    который позволяет выбрать вариант из списка
  • метод confirm,
    который запрашивает подтверждение (да/нет)
  • метод secret,
    который скрывает вводимый текст (для паролей)
  • метод info,
    который выводит сообщение зелёным цветом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить