To generate QR codes in Laravel, you can use the BaconQrCode
package. Here’s how you can install and use it:
Install the package using Composer:
composer require bacon/bacon-qr-code
Add the service provider to the providers
array in your config/app.php file:
'providers' => [
// Other service providers...
BaconQrCode\BaconQrCodeServiceProvider::class,
],
Add the QrCode facade to the aliases array in your config/app.php file:
'aliases' => [
// Other facades...
'QrCode' => BaconQrCode\Facades\QrCodeFacade::class,
],
Run the following command to publish the package’s configuration file:
php artisan vendor:publish --provider="BaconQrCode\BaconQrCodeServiceProvider"
This will create a config/bacon_qr_code.php
file in your project, which you can use to customize the package’s behavior.
To generate a QR code, you can use the QrCode
facade like this:
use BaconQrCode\Renderer\Image\SvgImageBackEnd;
use BaconQrCode\Renderer\ImageRenderer;
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
use BaconQrCode\Writer;
use Illuminate\Support\Facades\Response;
// Generate a QR code
$renderer = new ImageRenderer(
new RendererStyle(400),
new SvgImageBackEnd()
);
$writer = new Writer($renderer);
$qrCode = $writer->writeString('https://example.com');
// Send the QR code as an SVG response
$response = Response::make($qrCode);
$response->header('Content-Type', 'image/svg+xml');
return $response;
This will generate a QR code that contains the text https://example.com
, and send it as an SVG image response to the client. You can customize the appearance of the QR code and the image format by modifying the RendererStyle
and ImageBackEnd
objects.
I hope this helps! Let me know if you have any questions.