@@ -256,7 +256,7 @@ public function merge(EntityInterface $entity, array $data, array $options = [])
256
256
257
257
if (isset ($ propertyMap [$ key ])) {
258
258
$ assoc = $ propertyMap [$ key ]['association ' ];
259
- $ nested = $ propertyMap [$ key ]['nested ' ];
259
+ $ nested = [ ' associated ' => $ propertyMap [$ key ]['nested ' ] ];
260
260
$ value = $ this ->_mergeAssociation ($ original , $ assoc , $ value , $ nested );
261
261
} elseif ($ columnType ) {
262
262
$ converter = Type::build ($ columnType );
@@ -363,14 +363,15 @@ protected function _mergeAssociation($original, $assoc, $value, $options) {
363
363
*/
364
364
protected function _mergeBelongsToMany ($ original , $ assoc , $ value , $ options ) {
365
365
$ hasIds = array_key_exists ('_ids ' , $ value );
366
+ $ associated = isset ($ options ['associated ' ]) ? $ options ['associated ' ] : [];
366
367
if ($ hasIds && is_array ($ value ['_ids ' ])) {
367
368
return $ this ->_loadBelongsToMany ($ assoc , $ value ['_ids ' ]);
368
369
}
369
370
if ($ hasIds ) {
370
371
return [];
371
372
}
372
373
373
- if (!in_array ('_joinData ' , $ options ) && !isset ($ options ['_joinData ' ])) {
374
+ if (!in_array ('_joinData ' , $ associated ) && !isset ($ associated ['_joinData ' ])) {
374
375
return $ this ->mergeMany ($ original , $ value , $ options );
375
376
}
376
377
@@ -386,8 +387,8 @@ protected function _mergeBelongsToMany($original, $assoc, $value, $options) {
386
387
$ marshaller = $ joint ->marshaller ();
387
388
388
389
$ nested = [];
389
- if (isset ($ options ['_joinData ' ]['associated ' ])) {
390
- $ nested = (array )$ options ['_joinData ' ]['associated ' ];
390
+ if (isset ($ associated ['_joinData ' ]['associated ' ])) {
391
+ $ nested = [ ' associated ' => (array )$ associated ['_joinData ' ]['associated ' ] ];
391
392
}
392
393
393
394
$ records = $ this ->mergeMany ($ original , $ value , $ options );
0 commit comments