@@ -392,7 +392,7 @@ public function setModel(Model $model, array $columns = null): void
392392
393393 public function setSource (array $ data , $ fields = null ): Model
394394 {
395- // mainly for CardTable to support different field type for different row 1/2
395+ // mainly for CardTable to support different field type for different row
396396 // related with https://github.com/atk4/data/blob/4.0.0/tests/Persistence/StaticTest.php#L142
397397 $ dataWithObjects = [];
398398 if (is_array (reset ($ data ))) {
@@ -455,26 +455,9 @@ protected function renderView(): void
455455 // the same in Lister class
456456 $ modelBackup = $ this ->model ;
457457 try {
458- foreach ($ this ->model as $ entityOrig ) {
459- // mainly for CardTable to support different field type for different row 2/2
460- $ entityCloned = (clone $ entityOrig ->getModel ())->createEntity ();
461- $ entityCloned ->setId ($ entityOrig ->getId ());
462- \Closure::bind (function () use ($ entityOrig , $ entityCloned ) {
463- foreach ($ entityOrig ->data as $ k => $ v ) {
464- $ field = $ entityCloned ->getField ($ k );
465- if ($ field ->type === 'atk4_local_object ' && $ v instanceof EntityFieldPair) {
466- $ field ->type = $ v ->getField ()->type ;
467- $ field ->enum = $ v ->getField ()->enum ;
468- $ field ->values = $ v ->getField ()->values ;
469- $ field ->ui = $ v ->getField ()->ui ;
470- $ v = $ v ->get ();
471- }
472- $ entityCloned ->data [$ k ] = $ v ;
473- }
474- }, null , Model::class)();
475-
476- $ this ->model = $ entityCloned ;
477- $ this ->currentRow = $ entityCloned ; // TODO we should either drop currentRow property or never update model property
458+ foreach ($ this ->model as $ entity ) {
459+ $ this ->model = $ entity ;
460+ $ this ->currentRow = $ entity ; // TODO we should either drop currentRow property or never update model property
478461 if ($ this ->hook (self ::HOOK_BEFORE_ROW ) === false ) {
479462 continue ;
480463 }
0 commit comments