任务安排:Laravel 5.3

Task Scheduling : Laravel 5.3

I am following this tutorial 每分钟安排一个功能。下面是我在本地主机上的代码。

class Kernel extends ConsoleKernel
{
    protected $commands = [
        'App\Console\Commands\Inspire',
    ];

    protected function schedule(Schedule $schedule)
    {
        $schedule->call($this->WriteFile())->everyMinute();
    }

    protected function commands()
    {
        require base_path('routes/console.php');
    }

    private function WriteFile() {
        $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
        $txt = "John Doe\n";
        fwrite($myfile, $txt);
        fclose($myfile);
    }
}

我看到 txt 文件没有显示内容。我将 txt 文件放在 public 文件夹中。我错过了什么吗?

在我的 Console Routes 文件 console.php 中我有这个命令:

Artisan::command('writeFile', function () {
     Storage::disk('local')->put('file.txt', 'this is text !');
});

在我的 Kernal.php 我有这个:

protected function schedule(Schedule $schedule)
{
    $schedule->command('writeFile')
             ->everyMinute();
}

你还需要 运行 : php artisan schedule:run

文件将在路径中,文件将在路径中:"/storage/app/file.txt"

您可以阅读文件:Storage::get('file.txt');

对我来说很好..希望这对你有用:)