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

Метод option

Метод option применяется внутри класса команды для получения значения опции, переданной при вызове команды. Опции позволяют передавать дополнительные параметры в консольную команду и могут быть как с обязательным значением, так и без него. Метод возвращает значение опции или null, если опция не была передана. В качестве единственного параметра передаётся имя опции.

Синтаксис

<?php $this->option($name); ?>

Пример

Давайте создадим команду, которая принимает опцию '--limit' и выводит указанное количество пользователей:

<?php namespace AppConsoleCommands; use AppModelsUser; use IlluminateConsoleCommand; class ShowUsersCommand extends Command { protected $signature = 'users:show {--limit=5}'; protected $description = 'Show users with limit'; public function handle() { $limit = $this->option('limit'); $users = User::limit($limit)->get(); foreach ($users as $user) { echo $user->name . "\n"; } } } ?>

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

"php artisan users:show --limit=3" "John Doe" "Jane Smith" "Bob Johnson"

Пример

Давайте создадим команду, которая принимает флаговую опцию '--force' без значения:

<?php namespace AppConsoleCommands; use AppModelsUser; use IlluminateConsoleCommand; class DeleteUsersCommand extends Command { protected $signature = 'users:delete {--force}'; protected $description = 'Delete users with confirmation'; public function handle() { $force = $this->option('force'); if ($force) { User::truncate(); echo "All users deleted\n"; } else { echo "Use --force to confirm deletion\n"; } } } ?>

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

"php artisan users:delete" "Use --force to confirm deletion" "php artisan users:delete --force" "All users deleted"

Пример

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

<?php namespace AppConsoleCommands; use AppModelsUser; use IlluminateConsoleCommand; class FilterUsersCommand extends Command { protected $signature = 'users:filter {--roles=*}'; protected $description = 'Filter users by roles'; public function handle() { $roles = $this->option('roles'); if (empty($roles)) { echo "No roles specified\n"; return; } $users = User::whereIn('role', $roles)->get(); foreach ($users as $user) { echo $user->name . " - " . $user->role . "\n"; } } } ?>

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

"php artisan users:filter --roles=admin,editor" "John Doe - admin" "Jane Smith - editor"

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

  • метод argument,
    который получает значение аргумента команды
  • метод signature,
    который определяет сигнатуру команды
  • метод make:command,
    который создаёт новый класс команды
  • метод ask,
    который запрашивает ввод от пользователя в консоли
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить