最初はwerneckbh/laravel-qr-code
を入れたけど、
どうやら画像生成に特化しているようでQRコードを文字列で出力できなかった。
simplesoftwareio/simple-qrcode
だと上手くいったので共有。
インストール方法
- composer.jsonのrequireにパッケージを追加
composer.json
"require": {
"simplesoftwareio/simple-qrcode": "~2"
}
- laravelのディレクトリに移動して
composer update
を実行 - サービスプロバイダーとエイリアスを追加
config/app.php
'providers' => [
...
/*
* Package Service Providers...
*/
// 追加!!!
SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class,
],
'aliases' => [
...
// 追加!!!
'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class,
],
使い方
- フォーマット指定->生成->base64化でOK
SampleController.php
use SimpleSoftwareIO\QrCode\Facades\QrCode;
class SampleController extends Controller
{
...
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$src = base64_encode(QrCode::format('png')->size(100)->generate('https://qiita.com/nobuhiro-kobayashi'));
return response('<img src="data:image/png;base64, ' . $src . '">');
}
}
- png以外でもsvgやepsにも対応している模様