Laravel-Carbon Macro对未定义方法的调用

时间:2018-11-22 13:53:08

标签: php laravel macros php-carbon

我使用CarbonServiceProvider创建了一个php artisan make:provider CarbonServiceProvider类,并将其添加到我的providers文件的app.php数组中。

boot()方法中,我添加了此宏:

public function boot()
{
    if(!Carbon::hasMacro('nextWorkingDaySameTime')){
        Carbon::macro('nextWorkingDaySameTime', function ($startHour = 8, $endHour = 17) {
            [...]

            return $this;
        });
    }
}

我注意使用Illuminate\Support\Carbon;而不是Carbon\Carbon,因为从那以后它说macro()是不确定的。

每当我这样调用此宏时:

\Carbon\Carbon::nextWorkingDaySameTime();

它失败,并显示以下消息:

Call to undefined method Carbon\Carbon::nextWorkingDaySameTime()

1 个答案:

答案 0 :(得分:1)

问题是您正在致电\Carbon\Carbon::nextWorkingDaySameTime(); 您应该改为致电\Illuminate\Support\Carbon::nextWorkingDaySameTime();