PHP Professional,Laravel 5.6 Beginning to Advance এবং Zend Certified PHP Engineer (ZCPE ) Course এ সীমিত সংখ্যক আসন বাকি আছে। আগ্রহীদেরকে অতিসত্বর মাসুদ আলম স্যার এর সাথে যোগাযোগ করার জন্য অনুরোধ করা যাচ্ছে। স্যার এর মোবাইল নম্বর : ০১৭২২ ৮১ ৭৫ ৯১

বাংলায় PHP LARAVEL FRAMEWORK পর্ব-৯: LARAVEL Requests Basics

Laravel Framework এ Requests কি?

http request response

http request response

যদিও ওয়েব দুনিয়ায় Request বিষয়টি ব্যাপক ভাবে ব্যবহৃত হয়, এক কথায় বলা যায় , ক্লায়েন্ট বা ইউজার পিসি থেকে সার্ভার পিসিতে যখন কোনো কিছু চাওয়া হয় , তখন আমরা তাকে বলি Requests. Larvel Framework এ সবধরণের Request গুলো Illuminate\Http\Request Class এর মাধ্যমে হ্যান্ডলিং করা হয়। এই পর্বে আমরা Laravel Framework এর Request গুলো receive করার পদ্ধতি গুলো দেখব।

পূর্ব প্রস্তুতি :

Laravel Framework এ Request এবং Response গুলো বুঝার জন্য আমরা আলাদা ভাবে একটা Route define করব এবং একটা Controller তৈরী করব, চলুন প্রথমে আমরা /getrequest url এবং requestController point করার জন্য routes/web.php তে আমাদের route defina করি :

Route::get('/getrequest', 'requestController@index');

এবার আমরা CLI তে আমাদের requestController টি তৈরী করব:

php artisan make:controller requestController

সব কিছু ঠিক থাকলে আপনার CLI নিচের মত ফলাফল দেখাবে :

Laravel Request Controller

Laravel Request Controller

এখন আপনার app/Http/Controllers ফোল্ডারে requestController.php file এ নিচের মত কোড গুলো দেখতে পাবেন।

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class requestController extends Controller
{
    //
}

এখন আমরা সব Request গুলো নিয়ে কাজ করার জন্য আমাদের CLI Controller এ আমাদের index Method এর Parameter এ Request Class এর Object Receive করব। আমাদের index মেথড সহ requestController টি দেখতে নিচের মত হবে:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class requestController extends Controller
{
   public function index(Request $request){
    	
    }
}

Laravel Framework এ request নিয়ে কাজ করার জন্য আমাদের সব ধরণের প্রস্তুতি শেষ, এখন আমরা ধাপে ধাপে সব ধরণের request দেখবো।

Laravel Framework এ Controller থেকে কিভাবে input request গুলো receive করব?

Laravel Framework এ Controller থেকে request class এর all() method দিয়ে আপনি সব request একসাথে receive করতে পারেন। আবার $request object এর input() Method এর মাধ্যমে প্রত্যেকটি input আলাদা আলাদা receive করতে পারেন। আপনার requestController এর index মেথড এ নিচের মত কোডটি লিখুন :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class requestController extends Controller
{
   public function index(Request $request){
   	echo "<pre>";
    	 print_r($request->all());
    	 echo $request->input('name');
    	echo "</pre>";
    }
}

যেহেতু আপনি আপনার route এ requestController এর index method এর জন্য path হিসেবে /getrequest define করেছেন , এখন আপনি আপনার URL এ নিচের মতো করে যেকোনো request পাঠালে index মেথড সব receive করবে:

http://localhost:8000/getrequest?name=Masud Alam&age=39

এখন আপনি আপনার ব্রাউজার এ নিচের মত ফলাফল দেখতে পাবেন:

Receive Request Data From URL in Laravel

Receive Request Data From URL in Laravel

Laravel Framework এ সরাসরি route থেকে input request গুলো receive করা যাবে?

অবশ্যই করা যাবে, তবে তার জন্য আপনাকে Route এর মধ্যেও Request class টি ব্যবহার করতে হবে। আর বাকি সব আমাদের উপরের করা controller class এর কোডের মতোই। আপনার Route এ নিচের মতো করে কোড গুলো আপডেট করে নিন :

use Illuminate\Http\Request;
Route::get('/getrequest', function(Request $request){
    echo "<pre>";
         print_r($request->all());
         echo $request->input('name');
    echo "</pre>";
});

যেহেতু আমরা আমাদের route এ path হিসেবে /getrequest define করেছি , এখন আপনি আপনার URL এ নিচের মতো করে যেকোনো request পাঠালে index মেথড সব receive করবে:

http://localhost:8000/getrequest?name=Masud Alam&age=39

এখন আপনি আপনার ব্রাউজার এ নিচের মত ফলাফল দেখতে পাবেন:

Receive Request Data From URL in Laravel

Receive Request Data From URL in Laravel

Laravel Framework এ Controller থেকে কিভাবে url path receive করব?

Laravel Framework এ Controller থেকে request class এর url() method দিয়ে আপনি শুধু url receive করতে পারেন। আবার $request object এর fullUrl() Method এর মাধ্যমে full URL receive করতে পারেন। আপনার requestController এর index মেথড এ নিচের মত কোডটি লিখুন :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class requestController extends Controller
{
   public function index(Request $request){
   		echo "<pre>";
         echo $request->url();
         echo "\n";
         echo $request->fullUrl();
    	echo "</pre>";
    }
}

আপনার route এ নিম্নের মতো করে আপডেট করে নিন :

Route::get('/getrequest', 'requestController@index');

যেহেতু আপনি আপনার route এ requestController এর index method এর জন্য path হিসেবে /getrequest define করেছেন , এখন আপনি আপনার URL এ নিচের মতো করে যেকোনো request পাঠালে index মেথড URL দুই ভাবে অর্থাৎ শুধু URL এবং input সহ URL receive করবে :

http://localhost:8000/getrequest?name=Masud Alam&age=39

এখন আপনি আপনার ব্রাউজার এ নিচের মত ফলাফল দেখতে পাবেন:

Receive Path From Laravel Controller

Receive Path From Laravel Controller

Laravel Framework এ সরাসরি route থেকে URL Path receive করা যাবে?

অবশ্যই করা যাবে, তবে তার জন্য আপনাকে Route এর মধ্যেও Request class টি ব্যবহার করতে হবে। আর বাকি সব আমাদের উপরের করা controller class এর কোডের মতোই। আপনার Route এ নিচের মতো করে কোড গুলো আপডেট করে নিন :

use Illuminate\Http\Request;
Route::get('/getrequest', function(Request $request){
    echo "<pre>";
         print_r($request->url());
         echo $request->fullUrl();
    echo "</pre>";
});

যেহেতু আমরা আমাদের route এ path হিসেবে /getrequest define করেছি , এখন আপনি আপনার URL এ নিচের মতো করে যেকোনো request পাঠালে আপনার route নিজেও URL Path receive করতে পারবে:

http://localhost:8000/getrequest?name=Masud Alam&age=39

এখন আপনি আপনার ব্রাউজার এ নিচের মত ফলাফল দেখতে পাবেন:

Receive Path From Laravel Controller

Receive Path From Laravel Controller

Laravel Framework এ Controller থেকে কিভাবে url এর segment গুলো receive করব?

Laravel Framework এ Controller থেকে request class এর segment() method দিয়ে আপনি url এর segment গুলো receive করতে পারেন। আপনার requestController এর index মেথড এ নিচের মত কোডটি লিখুন :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class requestController extends Controller
{
   public function index(Request $request){
echo "Welcome ".$request->segment(2). " You're ".$request->segment(3). " years old";
    }
}

আপনার route এ নিম্নের মতো করে আপডেট করে নিন :

Route::get('/getrequest/{name}/{age}', 'requestController@index');

যেহেতু আপনি আপনার route এ requestController এর index method এর জন্য path হিসেবে /getrequest define করেছেন , এখন আপনি আপনার URL এ নিচের মতো করে যেকোনো request পাঠালে index মেথড এ URL segment গুলো প্রত্যেকটি আলাদা ভাবে receive করতে পারবেন

http://localhost:8000/getrequest/Masud Alam/35

এখন আপনি আপনার ব্রাউজার এ নিচের মত ফলাফল দেখতে পাবেন:

Receive URL Segment in Laravel

Receive URL Segment in Laravel

Laravel Framework এ সরাসরি route থেকে URL Segment receive করা যাবে?

অবশ্যই করা যাবে, তবে তার জন্য আপনাকে Route এর মধ্যেও Request class টি ব্যবহার করতে হবে। আর বাকি সব আমাদের উপরের করা controller class এর কোডের মতোই। আপনার Route এ নিচের মতো করে কোড গুলো আপডেট করে নিন :

use Illuminate\Http\Request;
Route::get('students/{name}/{age}', function(Request $request) {
        echo "Welcome ".$request->segment(2). " You're ".$request->segment(3). " years old";
}); 

যেহেতু আমরা আমাদের route এ path হিসেবে /students define করেছি , এখন আপনি আপনার URL এ নিচের মতো করে যেকোনো request পাঠালে আপনার route নিজেও URL Segment গুলো receive করতে পারবে:

http://localhost:8000/students/Masud Alam/39

এখন আপনি আপনার ব্রাউজার এ নিচের মত ফলাফল দেখতে পাবেন:

Receive URL Segment in Laravel

Receive URL Segment in Laravel

এই ক্যাটাগরির অন্যান্য পোস্ট:

Masud Alam
আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ৮ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। বিশেষ ভাবে বাংলাদেশের ১০০ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ৫২ জন ই আমার হাতে জেন্ড সার্টিফাইড হয়েছে। বর্তমানে TechBeeo Software Company তে সিইও হিসাবে আছি । পাশাপাশি w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -7 Engineering কোর্স করাই। আর w3programmers.com সাইট টি আমার।
One comment to “বাংলায় PHP LARAVEL FRAMEWORK পর্ব-৯: LARAVEL Requests Basics”

Leave a Reply

Your email address will not be published. Required fields are marked *