В этой статье мы рассмотрим процесс создания QR-кода для записи данных с использованием стека технологий PHP, Laravel 11 и библиотеки Filament3. Мы также покажем, как интегрировать эту функциональность в ваше приложение.
Введение
QR-коды становятся все более популярными для различных задач, включая запись информации. В Laravel 11 с помощью библиотеки Filament3 можно легко создать QR-код для записи данных. В этом руководстве мы покажем, как это сделать.

Установка необходимых библиотек
Для генерации QR-кодов будем использовать библиотеку simplesoftwareio/simple-qrcode
. Установим ее с помощью Composer:
1 | composer require simplesoftwareio/simple-qrcode |
Создание страницы просмотра
Создадим страницу для просмотра QR-кода. Для этого добавим новый маршрут и представление:
Создание маршрута
В файле app\Filament\Resources\StudentResource.php
добавим следующий маршрут:
1 | 'qr-code' => Pages\ViewQrCode::route('/{record}/qr-code'), |

Этот маршрут будет направлять пользователей на страницу для просмотра QR-кода при указании записи.
Создание представления
Создадим представление resources/views/filament/resources/student-resource/pages/view-qr-code.blade.php
1 2 3 | <x-filament::page> {!! QrCode::size(200)->generate($record->name) !!} </x-filament::page> |
В этом представлении мы генерируем QR-код с помощью переменной $QrCode
, которую передадим из страницы ресурса.
Создание страницы с Qr-кодом
Для создания страницы можно использовать консольную команду:
1 | php artisan make:filament-page ViewQrCode --resource=StudentResource --type=ViewRecord |
Filament автоматически создаст файл app/Filament/Resources/StudentResource/Pages /ViewQrCode.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php namespace App\Filament\Resources\StudentResource\Pages; use Filament\Pages\Actions; use Filament\Resources\Pages\ViewRecord; use App\Filament\Resources\StudentResource; class ViewQrCode extends ViewRecord { protected static string $resource = StudentResource::class; protected static string $view = 'filament.resources.student-resource.pages.view-qr-code'; protected function getHeaderActions(): array { return []; } } |
Документация Filament 3 — как создать дополнительную страницу ресурса
Добавление кнопки для генерации QR-кода
Теперь для каждой записи можно вывести кнопку для перехода на страницу с Qr-кодом. Для этого добавим в actions следующий код:
1 2 3 | Action::make('View Qr Code') ->icon('heroicon-o-qr-code') ->url(fn(Student $record): string => static::getUrl('qr-code', ['record' => $record])), |

Так должна отображаться кнопка создания кода

После нажатия на кнопку, отобразится страница с Qr-кодом

Заключение
В этой статье мы рассмотрели, как создать QR-код для записи в Laravel 11 с использованием библиотеки simplesoftwareio/simple-qrcode
и технологии Filament3. Мы создали контроллер для генерации QR-кодов, страницу для их просмотра и добавили кнопку для генерации QR-кодов на страницу ViewRecord
.
Этот пример можно легко адаптировать под ваши нужды, добавив дополнительные параметры в маршрут и представление. Надеюсь, эта статья была полезной для вас!