[MODM-122] array_slice fails on ReferenceMany and EmbeddedMany fields Created: 17/Feb/11  Updated: 17/Feb/11  Resolved: 17/Feb/11

Status: Resolved
Project: Doctrine MongoDB ODM
Component/s: None
Affects Version/s: 1.0.0BETA1
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Vitaliy Kaplich Assignee: Jonathan H. Wage
Resolution: Invalid Votes: 0
Labels: None

CentOS, PHP 5.3


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!

Comment by Jonathan H. Wage [ 17/Feb/11 ]

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()

Generated at Thu Oct 08 14:10:15 EDT 2015 using JIRA 6.4.10#64025-sha1:5b8b74079161cd76a20ab66dda52747ee6701bd6.