#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
}