-1

I'm using Laravel for development. In approve method of a controller, I cannot access $requestToBeApproved in Mail::send(). I tried $catRequest = $GLOBALS['requestToBeApproved']; and got error "undefined index". I also tried global $requestToBeApproved and got error "undefined variable". What happened here and how do I solve it?

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]
            );
}
RiggsFolly
  • 89,708
  • 20
  • 100
  • 143
keanehui
  • 175
  • 1
  • 12

1 Answers1

0

you have to tell your function to use it like this:

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

Mail::send('emails.toUser.toUser', 
            ['status'=>'Approved', 'catRequest'=>$requestToBeApproved],         
            function ($message) use( $requestToBeApproved) {
                $catRequest =  $requestToBeApproved;
                /* ... */
            });
OMR
  • 10,491
  • 5
  • 12
  • 29