Laravel控制器错误:未定义变量

时间:2019-10-29 11:21:29

标签: laravel

在我的Laravel控制器中,它一直说这样的错误。

  

[2019-10-29 11:13:57]本地。错误:未定义的变量:target_date

     

{“ userId”:2,“ exception”:“ [object](ErrorException(code:0):未定义的变量:target_date at

     

/home/ljw/public_html/byappscms/app/Http/Controllers/ChartController.php:78)

但是,在我的控制器文件中,变量EXIST。

ChartController.php

public function onGetAppDailyChartData(Request $request)
{

    info("~~~~~~~~~~~" . $request->date);
    $target_date = strtotime($request->date);
    info("~~~~~~~~~~~" . $target_date);

    $appsTotal = AppsData::where('app_process', '=', '7')
        ->where(function ($query) {
            $query->where('service_type', '=', 'lite')
                ->orWhere('end_time', '>', $target_date);
        })
        ->count();
}

然后我检查了日志,这些值打印得很好。 他们打印了日期和UNIX时间戳。

什么可能导致此错误?

1 个答案:

答案 0 :(得分:4)

该变量不在闭包函数的范围内,请配合使用

$appsTotal = AppsData::where('app_process', '=', '7')
                    ->where(function($query) use ($target_date) { // <--- Here
                      $query->where('service_type', '=', 'lite')
                            ->orWhere('end_time', '>', $target_date);
                    })
                    ->count();

希望这会有所帮助