Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Laravels' DD helper function working properly? [duplicate]

I like to use the dd function to debug. This time when I use it to display a list of appointments, I can't see (no clickable arrow) the data in the attributes and original. I get the brackets [ …19] displayed instead, not sure why.

Collection {#3061 ▼
  #items: array:548 [▼
    0 => Appointment {#821 ▼
      #table: "appointments"
      #fillable: array:16 [ …16]
      #connection: null
      #primaryKey: "id"
      #perPage: 15
      +incrementing: true
      +timestamps: true
      #attributes: array:19 [ …19]
      #original: array:19 [ …19]
      #relations: array:2 [ …2]
      #hidden: []
      #visible: []
      #appends: []
      #guarded: array:1 [ …1]
      #dates: []
      #dateFormat: null
      #casts: []
      #touches: []
      #observables: []
      #with: []
      #morphClass: null
      +exists: true
      +wasRecentlyCreated: false
    }
    1 => Appointment {#822 ▶}
    2 => Appointment {#823 ▶}
    3 => Appointment {#824 ▶}
    4 => Appointment {#825 ▶}
    5 => Appointment {#826 ▶}
    6 => Appointment {#827 ▶}
    7 => Appointment {#828 ▶}

And later in the list, I can't even see inside an appointment (no arrows):

    81 => Appointment {#902 ▶}
    82 => Appointment {#903 ▶}
    83 => Appointment {#904 ▶}
    84 => Appointment {#905 ▶}
    85 => Appointment {#906 …23}
    86 => Appointment {#907 …23}
    87 => Appointment {#908 …23}
    88 => Appointment {#909 …23}
    89 => Appointment {#910 …23}
    90 => Appointment {#911 …23}

But when I use var_dump, my data looks fine :

    array(548) {
      [0]=>
      array(21) {
        ["id"]=>
        int(149)
        ["appointmenttype_id"]=>
        NULL
        ["appointmentlocationtype_id"]=>
        NULL
        ["appointment_start"]=>
        object(Carbon\Carbon)#812 (3) {
          ["date"]=>
          string(26) "2015-12-21 07:00:00.000000"
          ["timezone_type"]=>
          int(3)
          ["timezone"]=>
          string(16) "America/New_York"
        }
        ["appointment_end"]=>
        object(Carbon\Carbon)#811 (3) {
          ["date"]=>
          string(26) "2015-12-21 09:00:00.000000"
          ["timezone_type"]=>
          int(3)
          ["timezone"]=>
          string(16) "America/New_York"
        }

Anyone else experienced that situation?

like image 272
user3489502 Avatar asked Oct 27 '25 07:10

user3489502


2 Answers

This is a not-so-known caveat of returning too large a list of results. Generally, dd() is meant to be a quick overview of the data you are returning, and handles "drill down" well on smaller groups of data. Once you reach a certain number (I forget the exact one, 500 maybe?), that functionality no longer works.

If you absolutely need to see this data before using it in your code somewhere, use a limit() clause before you get() the results, or use dd($example[0]) to see a single results' details. Hope that helps!

like image 101
Tim Lewis Avatar answered Oct 30 '25 05:10

Tim Lewis


Not a bug in dd() just how the underlying Sympony VarDumper is configured.

I believe the line in question is this one which has sets $maxDepth to 20 but I haven't checked this.

Looking at the Laravel Dumper logic there doesn't seem to be anyway to override this from within Laravel.

like image 31
Mark Davidson Avatar answered Oct 30 '25 06:10

Mark Davidson



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!