Как выполнить команды внешней оболочки из контроллера laravel?

Второй параметр register() - это класс ModelAdmin. Если вы хотите зарегистрировать сразу несколько моделей, без определенных ModelAdmins, вы должны передать их как interable в первом параметре:

admin.site.register([AdminProduct, CSVupload])
0
задан Ismoil Shifoev 19 January 2019 в 10:26
поделиться

2 ответа

Если вы хотите запускать команды из вашего PHP-приложения, я бы рекомендовал использовать Symfony Process Component :

  1. Выполнить composer require symfony/process
  2. Импорт класс в ваш файл с use Symfony\Component\Process\Process;
  3. Выполните вашу команду:

    $process = new Process(['rm', '/var/www/html/test.html']);
    
    $process->run();
    

Альтернативно, (если процесс, выполняющий php, имеет правильные разрешения) вы можете просто использовать PHP функцию unlink () для удаления файла:

unlink('/var/www/html/test.html');
0
ответ дан Ross Wilson 19 January 2019 в 10:26
поделиться

Я бы сделал это с помощью того, что фреймворк уже предоставляет:

1) Сначала сгенерируйте класс команд:

php artisan make:command TestClean

Это сгенерирует класс команд в App \ Console \ Commands [ 118]

Затем внутри метода handle этого класса команд напишите:

@unlink('/var/www/html/test.html');

Дайте вашей команде имя и описание и выполните:

php artisan list

Просто для подтверждения, что ваша команда в списке.

2) В свой контроллер импортируйте Artisan фасад.

use Artisan;

3) Затем в своем контроллере напишите следующее:

Artisan::call('test:clean');

Пожалуйста, обратитесь к документации для дальнейшего использования: https://laravel.com/docs/5.7/artisan # генераторных-команда

0
ответ дан Eden Reich 19 January 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: