Как скопировать текстовый URL-адрес в Filament Laravel

Я использую Laravel Filament и столкнулся с проблемой. У меня есть несколько комплектов, выделенных поставщикам, и я показываю названия комплектов с короткими URL-адресами. Как я могу скопировать только URL-адрес, не копируя другой текст?

public static function infolist(Infolist $infolist): Infolist
    {
        return $infolist
            ->schema([
                Components\Section::make()
                    ->schema([
                        Components\Split::make([
                            Components\Grid::make()
                                ->schema([
                                    Components\TextEntry::make('vendor.name'),
                                    Components\TextEntry::make('kit_ids')->label('Kits Name & URL')
                                    ->formatStateUsing(function (KitAllocation $kitAllocation) {
                                        $kitIds = $kitAllocation->kit_ids;
                                        $kits = Kit::whereIn('id', $kitIds)->get();
                                        $output = '';
                                        foreach ($kits as $kit) {
                                         $url = env('APP_URL') . ('/' . $kitAllocation->vendor->slug . '/' . $kit->slug);
                                         $output .= "<li>" . $kit->kit_name . "<br>" . ' -> ' . $url . "</li>";
                                        }
                                        return $output;
                                    })->html()
                                        ->copyable(function (KitAllocation $kitAllocation) {
                                            $kitIds = $kitAllocation->kit_ids;
                                            $kits = Kit::whereIn('id', $kitIds)->get();

                                            if ($kits->isNotEmpty()) {
                                                $kit = $kits->first();
                                                return env('APP_URL') . ('/' . $kitAllocation->vendor->slug . '/' . $kit->slug);
                                            }

                                            return '';
                                        }),

                                ]),

                        ])->from('lg'),
                    ]),

            ]);
    }

Мне нужно, чтобы данные отображались примерно так: «**Добро пожаловать в наборы футболок и сумок -> http://127.0.0.1:8000/olio-global-adtech/welcome-t-shirt-bag-pack-kits* *» и скопируйте только URL-адрес определенного текста клика.

Как скопировать только URL-адрес в нити в нескольких комплектах с URL-адресом.

Кто-нибудь поможет мне в этом.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
110
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для этого вы можете использовать метод copyableState() для настройки текста, копируемого в буфер обмена. См. код ниже.

...
->html()
->copyable()
->copyableState(
  function (KitAllocation $record) {
     $kitAllocation = $record;
     $kitIds = $kitAllocation->kit_ids;
     $kits = Kit::whereIn('id', $kitIds)->get();
    
     if ($kits->isNotEmpty()) {
          $kit = $kits->first();
          return env('APP_URL') . ('/' . $kitAllocation->vendor->slug . '/' . $kit->slug);
     }
    
     return '';
  }),
...

Документы

Спасибо, это работает, я забыл о состоянии, но у меня есть еще одна проблема: скопировать только первый URL-адрес. У меня есть список URL-адресов, использующий цикл, и я хочу скопировать URL-адрес при нажатии на любой URL-адрес. можешь мне помочь @Didwiz

Pradeep Kumar 19.06.2024 15:27

@PradeepKumar Возможно, вам придется опубликовать еще один вопрос с соответствующими фрагментами кода, относящимися к тому, что вы только что спросили меня, чтобы было легче ответить на ваш новый вопрос, а также, если мой ответ полностью решит ваш вопрос, пожалуйста, примите его.

Didwiz 24.06.2024 17:52

Другие вопросы по теме