0

I have this output at print_r($mailable):

Illuminate\Mail\SendQueuedMailable Object
(
    [mailable:protected] => App\Mail\Expired Object
        (
            [user:protected] => App\User Object
                (
                    [fillable:protected] => Array
                        (
                            [0] => name
                            [1] => email
                            [2] => password
                            [3] => demo
                            [4] => email_demo
                        )

                    [hidden:protected] => Array
                        (
                            [0] => password
                            [1] => remember_token
                        )

                    [connection:protected] => 
                    [table:protected] => 
                    [primaryKey:protected] => id
                    [keyType:protected] => int
                    [perPage:protected] => 15
                    [incrementing] => 1
                    [timestamps] => 1
                    [attributes:protected] => Array
                        (
                            [id] => 1020

How can I acces to that last line [id] => 1020?

I tried with $mailable->user, $mailable->mailable, but it says:

Undefined property: Illuminate\Mail\SendQueuedMailable::$user
bishop
  • 37,830
  • 11
  • 104
  • 139
pmiranda
  • 7,602
  • 14
  • 72
  • 155

1 Answers1

0

The properties you need are protected, so you can't access them from the outside, and the API does not offer getter methods. Since version 5.4, Laravel have made these properties public.

I'd recommend either updating to a newer version of Laravel, writing your own custom class that adds an accessor method, or use the pry bar technique to force the protected variables into the public API.

bishop
  • 37,830
  • 11
  • 104
  • 139