Я пытаюсь запланировать кампанию, которая запускается, когда
subendsat больше или равно текущему времени
subendsat
- это столбец в таблице пользователя
В моих командах у меня есть это
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\User;
use Carbon\Carbon;
class ChangeRole extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'command:update';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This Changes Role When The Subscription Expires';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
$user = User::where('subendsat', '>=', Carbon::now())->get();
$user->role = 'subscriber';
$user->save();
}
}
В моем ядре у меня есть
protected $commands = [
//
'App\Console\Commands\ChangeRole',
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('command:update')
->daily();
}
Я создаю базовую c задачу, подобную этой, в windows У меня есть этот inmy .bat файл
c: \ xampp \ php \ php .exe кустарное расписание: запустить 1 >> NUL 2> & 1
- Go до Windows Планировщик задач
- Нажмите кнопку Создать базовую задачу c, выберите Когда я войду в систему, а затем выберите Запуск программа -> ваш .bat файл.
- Установите флажок Открыть диалоговое окно свойств и нажмите Fini sh.
- В свойствах задачи нажмите «Триггеры», затем нажмите «Новый» и добавьте новый триггер. Повторять задачу каждые - 1 минута.
Но когда я запускаю команду
php команда ремесленника: обновление, возвращается ошибка
Вызов неопределенного метода Illuminate \ Database \ Eloquent \ Builder :: save ()
Но это не обновляет мою базу данных при ее запуске. Я не знаю, что я делаю. Может кто-нибудь посоветовать? спасибо.