]> _ Git - cubist_cms-back.git/commitdiff
wip #5851 @0.25
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 3 May 2023 13:44:06 +0000 (15:44 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 3 May 2023 13:44:06 +0000 (15:44 +0200)
src/app/Magic/Models/CubistMagicAbstractModel.php

index 6b9c3929b20dc56430951481fae42888a4c0b131..e18f9e22d0e5510646556b920b5271d79d32f99b 100644 (file)
@@ -169,7 +169,7 @@ class CubistMagicAbstractModel extends Model implements HasMedia
         if (null !== $this->connection) {
             $this->setConnection($this->connection);
         }
-        $label = 'Set '.get_class($this).' form fields';
+        $label = 'Set ' . get_class($this) . ' form fields';
         start_measure($label);
         $this->setFields();
         $this->postSetFields();
@@ -264,6 +264,25 @@ class CubistMagicAbstractModel extends Model implements HasMedia
         }
     }
 
+    public function addFakes($columns = ['extras'])
+    {
+        foreach ($columns as $key => $column) {
+            if (!isset($this->attributes[$column])) {
+                continue;
+            }
+
+            $column_contents = $this->{$column};
+            if (!is_array($column_contents) && !is_object($columns) && $this->shouldDecodeFake($column)) {
+                $column_contents = json_decode($column_contents);
+            }
+
+            if (is_array($column_contents) || is_object($column_contents) || $column_contents instanceof Traversable) {
+                foreach ($column_contents as $fake_field_name => $fake_field_value) {
+                    $this->setAttribute($fake_field_name, $fake_field_value);
+                }
+            }
+        }
+    }
 
     public function getFields()
     {