পথটি আপনার অ্যাপ্লিকেশনের জন্য একটি অনুরোধ URL তৈরি করার একটি উপায়। এই URL গুলিকে একটি ওয়েবসাইটে নির্দিষ্ট ফাইলের সাথে যুক্ত করার প্রয়োজন নেই এবং এটি মানুষের পাঠযোগ্য এবং SEO বন্ধুত্বপূর্ণ।
লারাভেলে, le ফোল্ডারের ভিতরে পাথ তৈরি করা হয় routes
. তারা ফাইল তৈরি করা হয় web.php
ওয়েবসাইটের জন্য এবং এর মধ্যে api.php
API-এর জন্য।
এইগুলো route
গ্রুপে বরাদ্দ করা হয় middleware
নেটওয়ার্ক, সেশন স্ট্যাটাস এবং নিরাপত্তা হাইলাইট করা CSRF
. মধ্যে রুট route/api.php
তারা স্টেটলেস এবং API মিডলওয়্যার গ্রুপে বরাদ্দ করা হয়েছে।
প্রাক ইনস্টলেশনdefiLaravel nita দুটি পাথ নিয়ে আসে, একটি ওয়েবের জন্য এবং একটি API এর জন্য। এই ওয়েব জন্য পাথ মত দেখায় কি web.php
:
Route::get('/', function () {
return view('welcome');
});
সব লারাভেল পথ defiডিরেক্টরির মধ্যে অবস্থিত পাথ ফাইলগুলিতে niti routes
. রুট ম্যানেজমেন্ট অ্যাপ্লিকেশন, defiফাইলে nished App\Providers\RouteServiceProvider
, স্বয়ংক্রিয়ভাবে এই ফাইলগুলি সারিবদ্ধ করার যত্ন নেয়। ফাইল route/web.php
defiআপনার ওয়েব ইন্টারফেসের জন্য পাথ nishes.
এটা সম্ভব defiএই নিয়ন্ত্রক কর্মের জন্য একটি পথ নিম্নরূপ নিশ করুন:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: পদ্ধতি Route::resource
একটি অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় সমস্ত মৌলিক পাথ তৈরি করে এবং কন্ট্রোলার ক্লাসের মাধ্যমে পরিচালিত হয়।
যখন একটি অনুরোধ নির্দিষ্ট রুট URI-এর সাথে মিলে যায়, তখন পদ্ধতিটি চালু করা হয় show
defiকন্ট্রোলারে সমাপ্ত App\Http\ControllersUserController
, পদ্ধতিতে রুট প্যারামিটার পাস করা।
সম্পদের জন্য, আপনাকে অ্যাপ্লিকেশনটিতে দুটি জিনিস করতে হবে Laravel. প্রথমত, আপনাকে একটি সংস্থান পথ তৈরি করতে হবে Laravel যা সন্নিবেশ, আপডেট, দেখা এবং পাথ মুছে দেয়। দ্বিতীয়ত, একটি রিসোর্স কন্ট্রোলার তৈরি করুন যা সন্নিবেশ, আপডেট, দেখা এবং মুছে ফেলার জন্য একটি পদ্ধতি প্রদান করে।
প্রাক ইনস্টলেশনdefiLaravel nita দুটি পথ নিয়ে আসে: একটি ওয়েবের জন্য এবং একটি API-এর জন্য। ওয়েবে যাওয়ার রুটটি web.php-এ কেমন দেখায় তা এখানে:
Route::get(‘/’, function () {
return view(‘welcome’);
});
লারাভেল মিডলওয়্যার অনুরোধ এবং প্রতিক্রিয়া মধ্যে একটি সেতু হিসাবে কাজ করে. এটি ফিল্টার উপাদান কিছু ধরনের হতে পারে.
Laravel একটি সঙ্গে কাজ মিডলওয়্যার যা ক্লায়েন্ট অ্যাপ্লিকেশন যাচাই করা হয়েছে কিনা তা নিশ্চিত করার কাজ আছে। যদি ক্লায়েন্ট নিশ্চিত হয়, তাহলে রাউটিং হোম পেজে বা লগইন পৃষ্ঠায় পুনঃনির্দেশ করে।
route
আগের কোড defiহোম পেজে একটি পথ nishes. যখনই এই পথের অনুরোধ আসে get
প্রতি /
, ফেরত দেবে view
welcome
.
সব লারাভেল পথ defiআপনার মধ্যে niti routing
, যা ডিরেক্টরীর ভিতরে অবস্থিত routes
. অতএব, l'AppProvidersRouteServiceProvider
আবেদন লাইন আপ এই রেকর্ড. ফাইল route/web.php
আপনার ওয়েব ইন্টারফেসের জন্য পরিচালিত রুটগুলি রয়েছে৷
পথের গঠন খুবই সহজ। উপযুক্ত ফাইল খুলুন (`web.php
` o `api.php
` ) এবং কোডের লাইন দিয়ে শুরু করুন `Route:: `
, আপনি যে নির্দিষ্ট রুটে বরাদ্দ করতে চান সেই অনুরোধটি অনুসরণ করুন এবং তারপরে অনুরোধের পরে সঞ্চালিত হবে এমন ফাংশন নির্দিষ্ট করুন।
Laravel নিম্নলিখিত পথ পদ্ধতি অফার করে:
get
post
put
delete
patch
options
পথগুলো হলো defiHTTP সহ রুট ক্লাসের মধ্যে Laravel-এ nited, উত্তর দেওয়ার রুট এবং ক্লোজ, বা কন্ট্রোলার।
আসুন দেখি কিভাবে আপনি লারাভেলে আপনার নিজস্ব পথ তৈরি করতে পারেন।
এখন আমি একটি মৌলিক পথ তৈরি করতে যাচ্ছি যা 2 এর টাইম টেবিল প্রিন্ট করবে।
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
উপরের কোডে, আমি URL এর জন্য একটি GET অনুরোধ পাথ তৈরি করেছি /table
, যা স্ক্রিনে 2 এর টাইম টেবিল প্রিন্ট করবে।
এখন আসুন একই কোডটি দেখি, যে সংখ্যাটির জন্য আমরা গুণের সারণী চাই তা প্যারামিটারাইজ করে:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
কোডে 'number
' ধনুর্বন্ধনীর মধ্যে প্যারামিটারের প্রতিনিধিত্ব করে, অর্থাৎ যে সংখ্যাটির জন্য গুণের টেবিলটি গণনা করা হবে। যখনই টাইপের একটি URL নির্দিষ্ট করা হয় /table/n
, তারপর নম্বর টেবিল প্রিন্ট করা হবে n
.
একই পথে উভয় বৈশিষ্ট্যকে একত্রিত করার উপায়ও রয়েছে। Laravel ঐচ্ছিক প্যারামিটার বৈশিষ্ট্য অফার করে যা আপনাকে প্রশ্ন চিহ্ন '?' ব্যবহার করে ঐচ্ছিক প্যারামিটার যোগ করতে দেয়। ঐচ্ছিক পরামিতি এবং প্রাক মান পরেdefiরাত আসুন উদাহরণটি দেখি:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
উপরের কোডে আমরা আমাদের রুট প্যারামিটার তৈরি করেছি, সংখ্যাটিকে ঐচ্ছিক করে, তাই যদি কোনো ব্যবহারকারী রুট করে `/table
` তাহলে এটি ডিফল্টরূপে 2 এর টেবিল তৈরি করবেdefinite এবং যদি একজন ব্যবহারকারী `তে রুট করে/table/{number}
তারপর নম্বর টেবিল 'number'
উত্পাদিত হবে।
পূর্ববর্তী উদাহরণে আমরা গুণের সারণী তৈরি করার জন্য একটি পথ তৈরি করেছি, কিন্তু গুণের টেবিল তৈরি করার সময় ত্রুটিগুলি এড়াতে আমরা কীভাবে নিশ্চিত করতে পারি যে পথের প্যারামিটারটি আসলে একটি সংখ্যা?
লারাভেলে, আপনি পারেন defi` পদ্ধতি ব্যবহার করে রুট প্যারামিটারে একটি সীমাবদ্ধতা নিশ করুনwhere
রুটের উদাহরণে। The `where
` প্যারামিটারের নাম এবং সেই প্যারামিটারের জন্য একটি রেগুলার এক্সপ্রেশন নেয়।
এখন আমাদের ` প্যারামিটারের জন্য একটি সীমাবদ্ধতার উদাহরণ দেখা যাক{numero}
` নিশ্চিত করতে যে ফাংশনে শুধুমাত্র একটি সংখ্যা পাস করা হয়েছে।
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
উপরের কোডে, আমরা পাথ নম্বরের জন্য একটি রেগুলার এক্সপ্রেশন ব্যবহার করেছি। এখন, যদি একজন ব্যবহারকারী রুট করার চেষ্টা করে /টেবিল/নং প্রদর্শন করা হবে একটি NotFoundHttpException ব্যতিক্রম।
লারাভেলে, আপনি পারেন defiএকটি পথের জন্য একটি কন্ট্রোলার পদ্ধতি নিশ করুন। একটি নিয়ামক পদ্ধতি সমস্ত ক্রিয়া সম্পাদন করে definite প্রতিবার একজন ব্যবহারকারী রুট অ্যাক্সেস করে।
নিম্নলিখিত কোড দিয়ে আমরা কন্ট্রোলার পদ্ধতি বরাদ্দ করছি 'functionname'
একটি রুটে:
Route:: get ( '/home' , 'YourController@functionname' ) ;
কোড দিয়ে শুরু হয় `Route::`
ই কুইন্ডি defiপথের জন্য অনুরোধের পদ্ধতিটি নিশ করে। পরবর্তীকালে, defiপদ্ধতির নামের আগে @ চিহ্ন যোগ করে পদ্ধতি সহ আপনার পথ এবং নিয়ামক শেষ করুন।
লারাভেলে, আপনি পারেন defiআপনার পথের জন্য একটি নাম নিশ. এই নাম প্রায়ই খুব দরকারী। উদাহরণস্বরূপ, আপনি যদি একজন ব্যবহারকারীকে এক অবস্থান থেকে অন্য অবস্থানে পুনঃনির্দেশ করতে চান, তাহলে আপনাকে এটি করতে হবে না defiসম্পূর্ণ রিডাইরেক্ট ইউআরএল নিশ করুন। আপনি শুধু তার নাম দিতে পারেন. আপনি পারেন defi` পদ্ধতি ব্যবহার করে রুটের নাম নিশ করুনname
রুটের উদাহরণে।
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
})->where('number', '[0-9]+')->name(‘table’);
এখন, আমি নিম্নলিখিত কোডের মাধ্যমে এই পথের জন্য url পুনরায় তৈরি করতে পারি:
$url = route('table');
একইভাবে, এই URL এ পুনঃনির্দেশ করার জন্য, সঠিক সিনট্যাক্স হবে:
return redirect()->route('table');
Route Groups
I Route Groups
, আক্ষরিক অর্থে পাথ গ্রুপ, লারাভেলের একটি অপরিহার্য বৈশিষ্ট্য, যা আপনাকে পাথগুলিকে গোষ্ঠীভুক্ত করতে দেয়। পাথ গোষ্ঠীগুলি উপযোগী যখন আপনি সমস্ত গোষ্ঠীবদ্ধ পাথে বৈশিষ্ট্যগুলি প্রয়োগ করতে চান৷ আপনি যদি পাথ গ্রুপ ব্যবহার করেন, তাহলে আপনাকে প্রতিটি পাথে পৃথকভাবে বৈশিষ্ট্যগুলি প্রয়োগ করতে হবে না; এটি নকল এড়ায়। এটা আপনি মত বৈশিষ্ট্য শেয়ার করতে পারবেন middleware
o namespaces
, সেনজা defiপ্রতিটি পৃথক পথে এই বৈশিষ্ট্যগুলি শেষ করুন। এই ভাগ করা বৈশিষ্ট্যগুলি পদ্ধতিতে প্রথম প্যারামিটার হিসাবে একটি অ্যারে বিন্যাসে পাস করা যেতে পারে Route::group
.
একটি রুট গ্রুপের সিনট্যাক্স
Route::group([], callback);
ঘুঘু []: প্রথম প্যারামিটার হিসাবে গ্রুপ পদ্ধতিতে পাস করা একটি অ্যারে।
এর উদাহরণ Route Group
নেল web.php
Route::group([], function()
{
Route::get('/first' , function()
{
echo "first way route" ;
});
Route::get('/second' , function()
{
echo "second way route" ;
});
Route::get('/third' , function()
{
echo "third way route" ;
});
});
কোডে, defiএর পদ্ধতি খুঁজে বের করা যাক গ্রুপ(), যা দুটি পরামিতি ধারণ করে, যেমন array
e closure
. ভিতরে closure
, আমরা পারি defiকতগুলি শেষ করুন route
আমরা চাই. উপরের কোডে, আমাদের আছে defiতিনটি শেষ route
.
যদি ব্রাউজারের মাধ্যমে আমরা URL অ্যাক্সেস করি localhost/myproject/first
তারপর প্রথম একজন হস্তক্ষেপ করে route
ব্রাউজারে টাইপ করা first way route
.
URL দিয়ে localhost/myproject/second
তারপর দ্বিতীয় আসে route
ব্রাউজারে টাইপ করা second way route
.
URL এর সাথে থাকাকালীন localhost/myproject/third
তারপর তৃতীয় আসে route
ব্রাউজারে টাইপ করা third way route
.
Route Groups
এর উপসর্গ route
সেগুলি ব্যবহার করা হয় যখন আমরা একটি ইউআরএল কাঠামো দিতে চাই যাতে একাধিক সাধারণ route
.
আমরা সমস্ত পাথের জন্য উপসর্গ নির্দিষ্ট করতে পারি defiউপসর্গ অ্যারে বিকল্প ব্যবহার করে গ্রুপের মধ্যে nites Route Groups
.
এর উদাহরণ web.php
Route::group(['prefix' => 'movie'], function()
{
Route::get('/godfather',function()
{
echo "Godfather casting";
});
Route::get('/pulpfiction',function()
{
echo "Pulp Fiction casting";
});
Route::get('/forrestgump',function()
{
echo "Forrest Gump casting";
});
});
কোডটিতে তিনটি পাথ রয়েছে যা নিম্নলিখিত URL গুলি থেকে অ্যাক্সেস করা যেতে পারে:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
আমরা একটি গ্রুপের মধ্যে সমস্ত রুটে মিডলওয়্যার বরাদ্দ করতে পারি। মিডলওয়্যার হতে হবে defiগ্রুপ তৈরি করার আগে শেষ। এটি কীভাবে করবেন তা দেখতে, আমাদের নিবন্ধটি পড়ুন লারাভেল মিডলওয়্যার এটি কিভাবে কাজ করে.
উদাহরণ:
Route::middleware(['age'])->group( function()
{
Route::get('/godfather',function()
{
echo "Godfather casting";
});
Route::get('/pulpfiction',function()
{
echo "Pulp Fiction casting";
});
Route::get('/forrestgump',function()
{
echo "Forrest Gump casting";
});
});
পদ্ধতি name
প্রতিটি নামের উপসর্গ ব্যবহার করা হয় route
একটি নির্দিষ্ট স্ট্রিং সহ। পদ্ধতিতে name
, আমাদের উপসর্গে একটি trailing অক্ষর সহ স্ট্রিং নির্দিষ্ট করতে হবে।
উদাহরণ web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
অ্যাপল ভিশন প্রো কমার্শিয়াল ভিউয়ার ব্যবহার করে ক্যাটানিয়া পলিক্লিনিকে একটি চক্ষুরোগ অপারেশন করা হয়েছিল...
রঙের মাধ্যমে সূক্ষ্ম মোটর দক্ষতার বিকাশ শিশুদের লেখার মতো জটিল দক্ষতার জন্য প্রস্তুত করে। রঙ…
নৌ সেক্টর একটি সত্যিকারের বৈশ্বিক অর্থনৈতিক শক্তি, যা 150 বিলিয়ন বাজারের দিকে নেভিগেট করেছে...
গত সোমবার, ফাইন্যান্সিয়াল টাইমস ওপেনএআই-এর সাথে একটি চুক্তি ঘোষণা করেছে। FT তার বিশ্বমানের সাংবাদিকতার লাইসেন্স দেয়...