From: Vincent Vanwaelscappel Date: Tue, 8 Mar 2022 21:15:58 +0000 (+0100) Subject: wip #5150 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=7e88f032af6cf656b41e86a8091c79d42f8acf41;p=cubist_cms-back.git wip #5150 @0.5 --- 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(); + } + } }