В приложении Laravel 10 у меня есть вызов Ajax в бэк-офисе, чтобы перевести проект вниз или вверх, который вызывает метод setMaintenanceMode(string $mode), например:
Код: Выделить всё
use Artisan;
use Str;
class MaintenanceService {
public function setMaintenanceMode(string $mode): array
{
if($mode == 'down') {
Artisan::call('down', [
'--render' => 'errors.maintenance',
'--secret' => config('app.maintenance.secret'),
'--retry' => config('app.maintenance.app_downtime_seconds', 600),
]);
session()->put('maintenance_mode', true);
}
if($mode == 'up') {
Artisan::call('up');
session()->forget('maintenance_mode');
}
$mode_new = $mode == 'down' ? 'up' : 'down';
$data = [
'command' => $mode,
'command_name' => ucfirst($mode),
'command_name_slug' => Str::slug($mode),
'last_run' => now(),
'run_mode' => 'manual',
'run_result' => 1,
];
return [
'message' => session()->has('maintenance_mode') ? 'Site is down' : 'Site is up',
'mode' => $mode,
'new_mode' => $mode_new,
'class' => session()->has('maintenance_mode') ? 'danger' : 'success',
];
}
}
В Laravel 10 это работает, но в Laravel 12 при использовании того же метода, что и выше, и попытке поднять проект вверх, передав значение как $mode="up" выдает ошибку 503, а вызов Ajax возвращает ее как 503.
Мой вопрос: есть ли способ переопределить режим обслуживания при вызове Artisan::call() в режиме обслуживания и получить статус 200 ok?
Подробнее здесь: https://stackoverflow.com/questions/798 ... nance-mode
Мобильная версия