This commit is contained in:
2023-10-02 23:10:49 +03:00
commit c6cb488379
255 changed files with 18731 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
<?php
namespace Lucent\Field;
use Illuminate\Support\Collection;
/**
* @extends \Illuminate\Support\Collection<int|string, Field>
*/
final class FieldCollection extends Collection
{
public function __construct(
Field ...$array
) {
parent::__construct($array);
}
/**
* @return Schema[]
**/
public function toArray(): array
{
return collect($this)->values()->toArray();
}
public function findByName(string $name): ?Field
{
return $this->firstWhere("name", $name);
}
public static function fromArray(array $data): FieldCollection
{
$items = array_map([Field::class, 'fromArray'], $data);
return new FieldCollection(...$items);
}
public static function fromDB(string $data): FieldCollection
{
return FieldCollection::fromArray(\json_decode($data,true));
}
}