Функция Laravel в планировщике

#laravel #scheduler #schedule

#laravel #планировщик #Расписание

Вопрос:

У меня есть проект laravel 5.2, и я хочу запустить laravel scheduler к указанному времени из данных базы данных, поэтому я создаю ядро расписания следующим образом :

 protected function schedule( Schedule $schedule )
{
    // Run proposal schedule to generate albums
    $proposals = Proposal::whereStatus( true )->whereGenerated( false )->get();
    foreach ( $proposals as $key => $proposal ) {
        $time = date( 'i G ', strtotime( $proposal->duedate ) );
        $send_date = date( $time . 'j n * Y', strtotime( $proposal->created_at . '   ' . $proposal->timeout . ' days' ) );
        $schedule->call( function() use( $proposal ) {
            $proposal->generateAlbums();
        } )->cron( $send_date );
    }
}
  

И это работает нормально, пока я не сброшу свою миграцию и не попытаюсь выполнить миграцию с самого начала, я получил ошибку, подобную этой

 SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "proposals" does not exist
  

Итак, я думаю, что это нехорошо, если я размещу там свой код, верно??

где я должен разместить свой код для этого??

Или это уже правильно, и мне нужно просто проверить, существует ли таблица базы данных или нет??

Мне нужно лучшее решение для кодирования именно так, как предоставляет laravel..

Комментарии:

1. это уже правильно, и вам нужно просто проверить, существует ли таблица базы данных или нет.

2. да, вы правы, база данных не существует, если я хочу заново установить свой проект, как проверить, существует база данных или нет? @Bhavesh

Ответ №1:

Вы можете проверить, существует таблица или нет, с помощью

 if (Schema::hasTable('proposals')) {
    //Your code which needs to execute
}