From 7e88f032af6cf656b41e86a8091c79d42f8acf41 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 8 Mar 2022 22:15:58 +0100 Subject: [PATCH] wip #5150 @0.5 --- src/app/Magic/Fields/Composed.php | 10 ++++++++-- src/app/Magic/Models/CubistMagicAbstractModel.php | 15 ++++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/app/Magic/Fields/Composed.php b/src/app/Magic/Fields/Composed.php index 0a40f7f..9420095 100644 --- a/src/app/Magic/Fields/Composed.php +++ b/src/app/Magic/Fields/Composed.php @@ -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(); } } diff --git a/src/app/Magic/Models/CubistMagicAbstractModel.php b/src/app/Magic/Models/CubistMagicAbstractModel.php index 8125dd5..cb01045 100644 --- a/src/app/Magic/Models/CubistMagicAbstractModel.php +++ b/src/app/Magic/Models/CubistMagicAbstractModel.php @@ -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(); + } + } } -- 2.39.5