首页 > 解决方案 > Laravel BusServieProvider

问题描述

我已经为这个错误苦苦挣扎了一段时间了。当我推送到实时服务器时,在我的 laravel API 中出现此错误,但相同的代码库运行良好,并在控制器中分派每封邮件。

例外:

ParseError”文件:“/var/www/server.com/vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php”行:51 消息:“语法错误,意外')'”

这是我的控制器中失败的代码片段。

public function approve_results($id){

    $user = (Auth::user()->firstname . ' ' . Auth::user()->lastname);

    $pass = DB::table('passengers')->select('*')->where('id', $id)
                ->where('deleted_at', NULL)
                ->first();

    $current_timestamp = Carbon::now()->toDateTimeString();

    if($pass->approval_status != 'PENDING'){
        return response()->json([
                'message' => 'Results already approved',
                'errorCode' => 401
            ]);
    } else {

        DB::table('passengers')->select('*')
                ->where('unique_number', $pass->unique_number)
                ->update(['approval_status' => 'APPROVED', 'approved_by' => $user, 'approval_date' => $current_timestamp]);


        $getphonecode = Country::where('nicename', '=', $pass->nationality)->first();
        $callcode = $getphonecode->phonecode;
        if($pass->telephone)
            $query_checker = '+233';

        $pass_phone = $pass->telephone;

        if (strpos($pass_phone, $query_checker) !== false ){
            $phone = ltrim($pass->telephone, '+');
        }else{
            $phone = ($callcode . ltrim($pass->telephone, '0'));
        }

        $status         = $pass->status;
        $name           = $pass->firstname . ' ' . $pass->lastname;
        $emailAddress   = $pass->email;
        $dob            = $pass->dob;
        $nationality    = $pass->nationality;
        $address        = $pass->address;
        $gender         = $pass->sex;
        $test_type      = $pass->test_type;
        $sample_collection_date = $pass->sample_collection_date;
        $sample_collection_time = $pass->sample_collection_time;
        $status         = $pass->status;
        $unique_number  = $pass->unique_number;
        $traveller      = $pass->travelling_status;
        $passport       = $pass->passport_number;
        $test_date      = $pass->test_date;
        $lab_id         = $pass->lab_id;
        $sormas_id      = $pass->sormas_id;
        $specimen_type  = $pass->specimen_type;

        if(strpos($phone, '233') != false ){
            // SendResultsViaSMS::dispatch($phone, $status, $name, $callcode, $uniqueNumber);
            Mail::to($emailAddress)->queue(new Results(strtoupper($status), $name, $passport ,$test_date,
            $lab_id, $sormas_id, $dob, $test_type, $specimen_type, $sample_collection_date, $sample_collection_time));
        }else{
            SendResultsViaSMS::dispatch($phone, $status, $name, $callcode, $unique_number);
            Mail::to($emailAddress)->queue(new Results(strtoupper($status), $name, $passport ,$test_date,
            $lab_id, $sormas_id, $dob, $test_type, $specimen_type, $sample_collection_date, $sample_collection_time));
        }

        return response()->json([
                'message' => 'Results Approved',
                'errorCode' => 201
        ]);
    }

}

数据库更新正常,但邮件没有发送,它给了我一个 500 内部错误。当数据库更新时,应该收到并发送邮件。我必须收到一个 201 错误代码,然后在前端用于路由。

标签: phplaravelapiubuntu-16.04

解决方案


感谢@lagbox 和所有评论的人。所以我能够通过更新代码库来修复它,我编辑了 vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php 并删除了第 51 行的尾随逗号


推荐阅读