Пока нет способа (не уверен, что когда-нибудь будет). Однако вы можете создать свою собственную команду Artisan Command , которая может это сделать. Создайте команду CallRoute
, используя это:
php artisan make:console CallRoute
Это приведет к созданию командного класса в app/Console/Commands/CallRoute.php
. Содержимое этого класса должно выглядеть так:
option('uri'), 'GET');
$this->info(app()['Illuminate\Contracts\Http\Kernel']->handle($request));
}
protected function getOptions()
{
return [
['uri', null, InputOption::VALUE_REQUIRED, 'The path of the route to be called', null],
];
}
}
Затем вам необходимо зарегистрировать команду, добавив ее в массив $commands
в app/Console/Kernel.php
:
protected $commands = [
...,
'App\Console\Commands\CallRoute',
];
Теперь вы можете вызвать любой маршрут с помощью этой команды:
php artisan route:call --uri=/route/path/with/param
Помните, что эта команда вернет ответ, поскольку он будет отправлен в браузер, это означает, что это включает заголовки HTTP в верхней части вывода.
РЕДАКТИРОВАТЬ
Это была проблема с временным каталогом. Обязательно установите разрешение 777 рекурсивно в каталог var / cache.
Но главной проблемой была настройка с каталогом tmp. Вы должны отредактировать php.ini, чтобы явно установить пути tmp:
sys_temp_dir="/absolute/path/to/magento2/var/tmp"
session.save_path="/absolute/path/to/magento2/var/tmp"
session.cookie_path="/absolute/path/to/magento2/var/tmp"
ИЛИ, если у вас нет доступа к php.ini (как я сделал из-за того, что мой веб-хостер не разрешил редактировать его) Вы можете внести изменения в ваш .htaccess следующим образом (если ваш хостер поддерживает mod_env
):
SetEnv TEMP /www/htdocs/your/path/mage/var/tmp
SetEnv TMP /www/htdocs/your/path/mage/var/tmp
SetEnv TMPDIR /www/htdocs/your/path/mage/var/tmp
См. также: