Doctrine MongoDB ODM
  1. Doctrine MongoDB ODM
  2. MODM-122

array_slice fails on ReferenceMany and EmbeddedMany fields

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Invalid
    • Affects Version/s: 1.0.0BETA1
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Environment:
      CentOS, PHP 5.3

      Description

      I am not sure if it's a bug of the framework or a bug in implementation of array_slice function in PHP
      but when I try to pass @ReferenceMany field value into array_slice built-in PHP function it fails with error:

      ==============================================
      array_slice() expects parameter 1 to be array, object given
      ==============================================

      I know that PersistentCollection has method "slice" (at least in master branch) but my concern is backward compatibility with the code which treats ReferenceMany type fields as arrays.
      The old code works perfectly until it uses array_slice.

      Please let me know are there any workarounds for this or probably you guys are going to implement some fix?

      Thanks a lot!

        Activity

        Hide
        Jonathan H. Wage added a comment -

        Hi, you need to pass an array so you can convert the iterator to an array with the iterator_to_array() method or call ->toArray() on the PersistentCollection. Then you can pass that array to array_slice()

        Show
        Jonathan H. Wage added a comment - Hi, you need to pass an array so you can convert the iterator to an array with the iterator_to_array() method or call ->toArray() on the PersistentCollection. Then you can pass that array to array_slice()

          People

          • Assignee:
            Jonathan H. Wage
            Reporter:
            Vitaliy Kaplich
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: