PHP-如何在函数外部访问变量

时间:2020-08-25 11:02:00

标签: php laravel

我正在使用Laravel进行开发。在控制器的approve方法中,我无法访问$requestToBeApproved中的Mail::send()。我尝试了$catRequest = $GLOBALS['requestToBeApproved'];,但收到错误“未定义索引”。我也尝试了global $requestToBeApproved并收到错误“未定义的变量”。这里发生了什么,我该如何解决?

public function approve($requestID)
{
    $requestToBeApproved = CatRequest::where('id', $requestID)->first();

    Mail::send('emails.toUser.toUser', 
                ['status'=>'Approved', 'catRequest'=>$requestToBeApproved],         
                function ($message) {
                    $catRequest = $GLOBALS['requestToBeApproved'];
                    /* ... */
                });
   
    return view('approvalConfirmation.approved', 
                ['catRequest' => $requestToBeApproved]
            );
}

1 个答案:

答案 0 :(得分:1)

您必须告诉您的函数像这样使用它:

 $requestToBeApproved = CatRequest::where('id', $requestID)->first();

Mail::send('emails.toUser.toUser', 
            ['status'=>'Approved', 'catRequest'=>$requestToBeApproved],         
            function ($message) use( $requestToBeApproved) {
                $catRequest =  $requestToBeApproved;
                /* ... */
            });