人気のPHP WEBアプリケーションフレームワークLaravelのTips。 (Laravelアプリの初期化)composer create-project laravel/laravel my-app

PHPのLaravelでURLをQRコードにするQRコード画像を生成するパッケージ

最短手順は「インストール →(自動登録)→ Bladeやコントローラで QrCode ファサードを呼ぶ」です。SVG表示は即使え、PNG出力は GD/Imagick が必要です。[1][2][3]

インストール

  • 実行: composer require simplesoftwareio/simple-qrcode(v4系が推奨)。[2][3]
  • Laravelの自動パッケージ発見でプロバイダ/エイリアス登録は不要(古い記事の手動追記は基本不要)。[3]

もっとも簡単な表示(SVG)

  • Bladeにそのまま埋め込み
    ・{!! QrCode::generate('https://example.com') !!}(デフォルトはサイズ100のSVG)。[4][3]
  • サイズ指定
    ・{!! QrCode::size(300)->generate($url) !!}。[3]

PNGで表示したい場合

  • PNGをBase64データURIにしてimgで表示
  • 注意: PNG生成には GD もしくは Imagick が必要(Dockerなら gd/imagickの導入が必要)。[2] ・例: pecl install imagick、docker-php-ext-install gd などで有効化。[2]

コントローラで使う例

  • コントローラ
    ・use SimpleSoftwareIO\QrCode\Facades\QrCode; を宣言し、$svg = QrCode::size(200)->generate($url); をビューへ渡す。[5]
  • ビュー
    ・{!! $svg !!} を出力すればSVGが表示される。[5]

よく使うオプション

  • 形式: format('png'|'svg'|'eps')(デフォルトSVG)。[6][3]
  • サイズ: size(100〜)。[6][3]
  • 誤り訂正: errorCorrection('L'|'M'|'Q'|'H')。[6]
  • 色: color(r,g,b)(PNG時はGD/Imagick必須)。[6]

ダウンロード/保存

  • ダウンロード用ルートを用意し、生成結果をレスポンスとして返却(例: PNGバイナリをレスポンス、Content-Dispositionでattachment)。[1]
  • Storage::put でSVG/PNGを保存し、配布やキャッシュに利用可能。[1]

トラブル対策

  • 画像生成でエラー: GD/Imagick未導入が典型、拡張を入れて再試行。[2]
  • 古い記事の手動設定: v4は自動ロードのため不要なことが多い。[3]

この流れで、URLを渡すだけで画面表示・API返却・保存・ダウンロードまで一通り実装できます。[5][6][1][3][2]

1 2 3 4 5 6 7 8 9 10

No.2682
11/01 09:15

edit