3
0
mirror of https://github.com/snipe/snipe-it.git synced 2026-02-05 19:15:50 +00:00
Files
snipe-it/app/Models/Labels/Field.php
snipe 95f867b267 Code formatting fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 21:48:53 +01:00

53 lines
1.3 KiB
PHP

<?php
namespace App\Models\Labels;
use App\Models\Asset;
use Illuminate\Support\Collection;
class Field
{
protected Collection $options;
public function getOptions()
{
return $this->options;
}
public function setOptions($options)
{
$tempCollect = collect($options);
if (!$tempCollect->contains(fn($o) => !is_subclass_of($o, FieldOption::class))) {
$this->options = $options;
}
}
public function toArray(Asset $asset)
{
return Field::makeArray($this, $asset);
}
/* Statics */
public static function makeArray(Field $field, Asset $asset)
{
return $field->getOptions()
// filter out any FieldOptions that are accidentally null
->filter()
->map(fn($option) => $option->toArray($asset))
->filter(fn($result) => $result['value'] != null);
}
public static function makeString(Field $option)
{
return implode('|', $option->getOptions());
}
public static function fromString(string $theString)
{
$field = new Field();
$field->options = collect(explode('|', $theString))
->filter(fn($optionString) => !empty($optionString))
->map(fn($optionString) => FieldOption::fromString($optionString));
return $field;
}
}