]> _ Git - cubist_cms-back.git/commitdiff
wip #5150 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 8 Mar 2022 21:15:58 +0000 (22:15 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 8 Mar 2022 21:15:58 +0000 (22:15 +0100)
src/app/Magic/Fields/Composed.php
src/app/Magic/Models/CubistMagicAbstractModel.php

index 0a40f7faf69b149f6b137aad62e9a1691c7493b6..9420095a7139f113b891c9f6d38a62317c4c19f7 100644 (file)
@@ -4,10 +4,16 @@ namespace Cubist\Backpack\Magic\Fields;
 
 class Composed extends Hidden
 {
-    protected string $_attribute = '';
+    protected string $_composed = '';
 
     public function getDefaultAttributes()
     {
-        return array_merge(parent::getDefaultAttributes(), ['attribute' => $this->_attribute]);
+        return array_merge(parent::getDefaultAttributes(), ['composed' => $this->_composed]);
+    }
+
+    public function filterValue($value)
+    {
+        $c = $this->getAttribute('composed');
+        return $this->getModelInstance()->$c();
     }
 }
index 8125dd5695a3e710b330a2922d7d371565b8c44b..cb0104563a6cc2b953cc328275381b95d3ccf950 100644 (file)
@@ -5,6 +5,7 @@ namespace Cubist\Backpack\Magic\Models;
 use Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
 use Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
 use Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
+use Cubist\Backpack\Magic\Fields\Composed;
 use Cubist\Backpack\Magic\Fields\Datetime;
 use Cubist\Backpack\Magic\Fields\Files;
 use Cubist\Backpack\Magic\Operations\CreateOperation;
@@ -410,7 +411,7 @@ class CubistMagicAbstractModel extends Model implements HasMedia
     }
 
     /**
-     * @return stringx
+     * @return string
      */
     protected function _getBaseController()
     {
@@ -1166,4 +1167,16 @@ class CubistMagicAbstractModel extends Model implements HasMedia
 
         return $saved;
     }
+
+    public static function refreshComposedAttributes(){
+        $all=static::all();
+        foreach ($all as $instance) {
+            foreach ($instance->getFields() as $field) {
+                if($field instanceof Composed){
+                    $instance->getAttribute($field->getName());
+                }
+            }
+            $instance->save();
+        }
+    }
 }