How To Generate QRcode In Laravel

WebSolutionStuff | Jun-01-2020 | Categories : Laravel PHP CSS HTML Bootstrap

In this example i will give information about QRcode. As per the current trend many websites and applications are provide features like login with qrcode, scan qrcode and get more information about products and websites etc.

So,I will implement QRcode in my project to give you demo, there are many packeges availalbe to generate qrcode. So, in this example i will use Endroid QR Code Generator.

Let's start with code and implement below code in your application.

 

 Step 1 : Install Laravel

Type the following command in terminal for create new project in your system.

composer create-project --prefer-dist laravel/laravel QRcode

 

Step 2 : Install Endroid QRcode Package In Your Application

After installation of project you need to install Endroid QRcode Package

composer require endroid/qr-code

 

Step 3 : Create Controller

Now create controller on this path app\Http\Controllers\QRController.php and add below command.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Endroid\QrCode\QrCode;
use Endroid\QrCode\ErrorCorrectionLevel;
use Endroid\QrCode\LabelAlignment;
class QRController extends Controller
{
    public function index()
    {
    	return view('qrcode.index');
    }
    
    public function create()
    {
		$qrCode = new QrCode('websolutionstuff.com');
		$qrCode->setSize(300);
		$qrCode->setMargin(10); 
		$qrCode->setEncoding('UTF-8');
		$qrCode->setWriterByName('png');
		$qrCode->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH());
		$qrCode->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]);
		$qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]);
		$qrCode->setLogoSize(150, 200);
		$qrCode->setValidateResult(false);		
		$qrCode->setRoundBlockSize(true);
		$qrCode->setWriterOptions(['exclude_xml_declaration' => true]);
		header('Content-Type: '.$qrCode->getContentType());
		$qrCode->writeFile(public_path('/qrcode.png'));

		return redirect()->route('qrcode.index');
    }
}

 

Step 4 : Add Route

We need to add route for generating QR code and view file.

<?php

use Illuminate\Support\Facades\Route;

Route::get('qr_code/index','[email protected]')->name('qrcode.index');
Route::get('qr_code/create','[email protected]')->name('qrcode.create');

 

Step 5 :  Create Blade File

And after that we need to create blade file for view / generate and download QRcode. So, add below code in your index.blade.php file

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<title>Qrcode - Websolutionstuff</title>
		<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

	</head>
	<body>
		<form class="text-center" action="{{route('qrcode.create')}}" method="get" accept-charset="utf-8">
			<div class="row mt-5">
				<div class="col-md-12">
					<h2>Click on button to generate Qrcode - Websolutionstuff</h2>
					<button class="btn btn-success" type="submit">Generate</button> 
					<a href="{{asset('qrcode.png')}}" class="btn btn-primary" download>Download</a><br>
					<img class="img-thumbnail" src="{{asset('qrcode.png')}}" width="150" height="150" style="margin-top: 20px">
				</div>
			</div>
		</form>
	</body>
</html>

 

You can customize this QRcode as per your requirments like changes in background colors, changes foreground color, QRcode size, QRcode margin etc...

To check this example run below code in your browser.

http://localhost:8000/qr_code/index

 

And finally you will get output like below screen print.

qrcode

 

Featured Post



Follow us
facebooklogo github instagram twitter