Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using a foreach loop in a Doctrine arraycollection

I have just discovered the following library https://github.com/simshaun/recurr and the output of is using a Doctrine arrayCollection.

How can I use a foreach loop to loop through this array and get the date value?

Array
 (
    [0] => Recurr\Recurrence Object
        (
        [start:protected] => DateTime Object
            (
                [date] => 2014-08-03 15:00:00.000000
                [timezone_type] => 3
                [timezone] => America/Vancouver
            )

        [end:protected] => DateTime Object
            (
                [date] => 2014-08-03 17:00:00.000000
                [timezone_type] => 3
                [timezone] => America/Vancouver
            )

    )

[1] => Recurr\Recurrence Object
    (
        [start:protected] => DateTime Object
            (
                [date] => 2014-08-04 15:00:00.000000
                [timezone_type] => 3
                [timezone] => America/Vancouver
            )

        [end:protected] => DateTime Object
            (
                [date] => 2014-08-04 17:00:00.000000
                [timezone_type] => 3
                [timezone] => America/Vancouver
            )

    )

  )
like image 298
AshHimself Avatar asked Jul 24 '26 13:07

AshHimself


1 Answers

This will not work in this context - you can use a foreach loop to get through the elements, but you are not allowed to access the property of the object, because it's marked as protected. So you'll use a Getter that you can access it.

foreach (<yourarray> as $numObject => $object)
{
    $object->end;  // So you could access it, but its protected
    $object->getEndDate();  // Like this you can access it
}

And if you have it, than you have a simple \DateTime Object and with the format method you can get your date string e.g. $object->getEndDate()->format('Y-m-d H:i:s');.

like image 190
andreashager Avatar answered Jul 26 '26 02:07

andreashager



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!