У меня есть шаблон php-файла, который мне нужно заполнить некоторыми данными и экспортировать как «rendered_view.php». Это нужно делать автоматически каждый день. Поэтому я пытаюсь использовать Планировщик Laravel.
Итак, у меня есть:
Просмотр"view_to_render.blade.php"
<?
$someVariable = "{{$variable}}";
require_once("includes/php_file.php");
?>
Контроллер"MiscController.php"
public function testRenderView(){
file_put_contents(public_path('rendered_view.php'), view('view_to_render', ['variable' => '123456'])->render());
}
Маршрут
Route::get('testRenderView', 'MiscController@testRenderView');
Консоль / Kernel.php
$schedule->call(function() {
(new MiscController())->testRenderView();
})->daily()->at('13:00');
Сценарий 1: Если перейти к 127.0.0.1: 8000 / testRenderView , он работает, и файл rendered_view.php сохраняется в общей папке с ожидаемым содержимым:
<?
$someVariable = "123456";
require_once("includes/php_file.php");
?>
Сценарий 2: Если он выполняется планировщиком (в 13:00), он возвращает ошибку:
local.ERROR: Подсветка \ Просмотр \ Двигатели \ PhpEngine :: main (): Ошибка открытия
Обязательный 'include / php_file.php' (include_path = '.:')
{ "Исключение": "[объект]
(Symfony \ Component \ Debug \ Exception \ FatalErrorException (код: 64):
Подсветка \ Просмотр \ Двигатели \ PhpEngine :: main (): не удалось открыть
'includes / php_file.php' (include_path = '.:')
Похоже, когда он выполняется из планировщика, Laravel пытается отобразить представление как реальное представление.
Я также пытался создавать команды ремесленников, но поведение такое же. Работает нормально, когда я выполняю команду на консоли, но не работает, когда я вызываю команду из планировщика. Есть идеи, почему это происходит?