-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
  • 93,638
  • 21
  • 103
  • 149
keanehui
  • 185
  • 2
  • 13

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
  • 11,736
  • 5
  • 20
  • 35