调度程序中的Laravel函数

时间:2016-10-21 04:22:24

标签: laravel scheduler schedule

我有一个laravel 5.2项目,我想在数据库数据的指定时间内运行laravel调度程序,所以我创建了这样的调度内核:

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 个答案:

答案 0 :(得分:1)

您可以通过

检查表格是否存在
if (Schema::hasTable('proposals')) {
    //Your code which needs to execute
}