LaravelでQRコードのVue.jsとの連携
思い付いてしまえば、なんてことはないのですが…
SimpleQRCodeを使ったLaravelでもQRコードの出力。
コントローラ内等では、generateされるHTMLは作成されたオブジェクト内でProtectedで保存されているために実質使えない。
そのため一旦Viewを経由してデータを取り出す。
まず、qrcode.blade.phpを作成する。
qrcode.blade.phpの内容は下記の1文のみ
{!! QrCode::generate($qrdata) !!}
コントローラ内では下記の様な処理にする。
use SimpleSoftwareIO\QrCode\Facades\QrCode;
function xxxxx(){
︙
$qrdata = 'Input data that u want to make QRcode';
$returnData = view('qrcode', compact('qrdata'))->render();
︙
こうすることでVue.jsに渡すデータをコントローラ内で作成できる。
For文などでループさせれば一気に複数レコード分のQRコードを作成でき、かつ画像データをファイル化せずにゴミになる心配がなくなる。