1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?php
- namespace App\Services\History\Converter;
- use App\Models\User;
- use Illuminate\Support\Collection;
- class WhitelistConverter extends EagerLoadingConverter implements ConverterContact
- {
- protected static Collection $items;
- public function handle(mixed $value)
- {
- $ids = array_filter(explode(",", $value));
- if (! $ids) {
- return null;
- }
- $names = [];
- foreach ($ids as $id) {
- if (self::$items->has($id)) {
- $names[] = self::$items->get($id);
- }
- }
- return implode(",", $names);
- }
- public static function eagerLoad(array $items): void
- {
- $ids = [];
- foreach ($items as $item) {
- $ids = [...$ids, ...array_filter(explode(",", $item))];
- }
- $ids = array_unique(array_filter($ids));
- self::$items = User::query()->whereIn("id", $ids)->pluck("name", "id");
- }
- }
|