আমরা দুই ধরনের প্যারামিটার ব্যবহার করতে পারি।

  • Required Parameters
  • Optional Parameters

Required Parameters:

প্রয়োজনীয় প্যারামিটার হল সেই প্যারামিটার যা আমরা URL এ পাস করে। কখনও কখনও যদি আপনি ইউআরআই-এর কিছু অংশ ক্যাপচার করতে চান তাহলে ইউআরএল-এ প্যারামিটারগুলি পাস করে এটি করে নিতে পারবেন। উদাহরণস্বরূপ, আপনি URL থেকে ব্যবহারকারী আইডি ক্যাপচার করতে চান।

আসুন রুট প্যারামিটার এর উদাহরণ দেখি।

  1. <?php  
  2. Route::get('/'function()  
  3. {  
  4.   return "This is a home page";   
  5. }  
  6. );  
  7. Route::get('/about'function()  
  8. {  
  9.   return "This is a about us page";   
  10. }  
  11. );  
  12. Route::get('/contact'function()  
  13. {  
  14.   return "This is a contact us page";   
  15. }  
  16. );  

আউটপুট:

যখন আমরা এই "localhost/laravelproject/public/" URL লিখি


যখন আমরা এই "localhost/laravelproject/public/about" URL লিখি

যখন আমরা এই "localhost/laravelproject/public/contact" URL লিখি


চলুন রুট প্যারামিটার সহ একটি উদাহরণটি দেখি।

  1. Route::get('/post/{id}'function($id)  
  2. {  
  3.   return "id number is : "$id;   
  4. }  
  5. );  

রুট প্যারামিটারগুলি {} বন্ধনীর মধ্যে আবদ্ধ, এবং প্যারামিটারে অবশ্যই বর্ণমালার অক্ষর থাকতে হবে। এটিতে '-' অক্ষর থাকা উচিত নয় এবং এই অক্ষরটি ব্যবহার করার পরিবর্তে, আপনি '_' অক্ষর ব্যবহার করতে পারেন।

রুট কলব্যাকগুলিতে রুট প্যারামিটার পাওয়া যায়। রুট প্যারামিটারের সিনট্যাক্স নীচে দেওয়া হল।

 কলব্যাক/কন্ট্রোলার আর্গুমেন্টের নাম যেখানে কন্ট্রোলার আর্গুমেন্ট হল রুট প্যারামিটার।

আউটপুট:

একাধিক রুট প্যারামিটার সহ উদাহরণটি দেখি।

  1. //We can also pass the multiple parameters.  
  2.   
  3. Route::get('/post/{id}/{name}'function($id,$name)  
  4. {  
  5.   return "id number is : "$id ." ".$name;   
  6. }  
  7. );  

আউটপুট:

অপশনাল বা ঐচ্ছিক প্যারামিটার:

ধরুন আপনি মাঝে মাঝে রুট প্যারামিটার নির্দিষ্ট করতে চান, এটি অর্জন করার জন্য, আপনি রুট প্যারামিটারটিকে ঐচ্ছিক করতে পারেন। রুট প্যারামিটারটিকে ঐচ্ছিক করতে, আপনি '?' বসাতে পারেন। পরামিতি নামের পরে অপারেটর। আপনি যদি ঐচ্ছিক পরামিতি প্রদান করতে চান, এবং তারপর নিশ্চিত করুন যে আপনি ভেরিয়েবলে ডিফল্ট মানও প্রদান করেছেন।

কিছু উদাহরণের মাধ্যমে বোঝা যাক।

উদাহরণ - ০১:

  1. Route::get('user/{name?}'function ($name=null) {  
  2.     return $name;  
  3. });  

যখন আমরা URL এ কোন ভেরিয়েবল পাস করি না, তখন আউটপুট হবে নিচের স্ক্রিনশটের মতো।

যখন আমরা ইউআরএলে 'Mahbub Pathan' পাস করি, তখন আউটপুট হবে নিচের স্ক্রিনশটের মতো।

উপরের আউটপুট থেকে, আমরা লক্ষ্য করি যে ইউআরএলে আমরা যে প্যারামিটারটি পাস করেছি সেটি অপশনাল বা ঐচ্ছিক। যেহেতু আমরা প্যারামিটারটিকে Null হিসাবে ডিফল্ট মান প্রদান করেছি, তাই আমরা যদি কোনও প্যারামিটার পাস না করি তবে এটি null হিসাবে ফিরে আসবে। যদি আমরা ইউআরএলে প্যারামিটারটি পাস করি, তাহলে প্যারামিটারের মান প্রদর্শিত হবে।

উদাহরণ - ০২:

  1. Route::get('user/{name?}'function ($name = 'Mahbub Pathan') {  
  2.     return $name;  
  3. });  

উপরের উদাহরণে, আমরা 'Mahbub Pathan' হিসাবে ডিফল্ট মান প্রদান করেছি।

আউটপুট:

উপরের উদাহরণে, আমরা কোনও প্যারামিটার পাস করি না, তাই ডিফল্ট মানটি ফেরত দেওয়া হয়েছে।

নিয়মিত বা রেগুলার এক্সপ্রেশন এর সীমাবদ্ধতা:

এই সীমাবদ্ধতাগুলি একটি রুট উদাহরণে যেখানে পদ্ধতি ব্যবহার করে রুট প্যারামিটারগুলি ফর্ম্যাট করতে পারে। 'Where' পদ্ধতিটি প্যারামিটারের নাম এবং রেগুলার এক্সপ্রেশন সীমাবদ্ধতা গ্রহণ করে যা নির্ধারণ করে কিভাবে প্যারামিটারকে সীমাবদ্ধ করা উচিত।

কিছু উদাহরণের মাধ্যমে বোঝা যাক।

উদাহরণ - ০১:

ধরুন আমরা একটি রুট প্যারামিটার হিসাবে ব্যবহারকারীর নাম পাস করতে চাই যাতে শুধুমাত্র বর্ণানুক্রমিক অক্ষর থাকে।

  1. Route::get('user/{name?}'function ($name=null) {  
  2.     return $name;  
  3. })->where('name','[a-zA-Z]+');  

উদাহরণ - ০২:

আসুন একটি উদাহরণ বিবেচনা করি যা শুধুমাত্র সংখ্যাসূচক মান গ্রহণ করে।

  1. Route::get('user/{id?}'function ($id=null) {  
  2.     return "id is : "$id;  
  3. }->where('id','[0-9]+');  

উদাহরণ - ০৩:

আসুন একটি উদাহরণ বিবেচনা করি যা আলফানিউমেরিক অক্ষর গ্রহণ করে।

  1. Route::get('user/{id}/{name}'function ($id,$name) {  
  2.     return "id is : "$id ." ,".  "Name is : ".$name ;  
  3. })->where(['id'=>'[0-9]+''name'=>'[a-zA-Z]+']);  

গ্লোবাল বা বিশ্বব্যাপী সীমাবদ্ধতা:

আপনি কি সবসময় একটি রুট প্যারামিটার একটি নিয়মিত এক্সপ্রেশন দ্বারা সীমাবদ্ধ হতে চান; এর জন্য আপনি প্যাটার্ন পদ্ধতি ব্যবহার করতে পারেন। আপনি আপনার RouteServiceProvider এর বুট পদ্ধতিতে এই নিদর্শনগুলি সংজ্ঞায়িত করতে পারেন।

গ্লোবাল সীমাবদ্ধতা ব্যবহার করা হয় যখন আমাদের একাধিক রুট থাকে এবং একই সীমাবদ্ধতা সমস্ত রুটে প্রয়োগ করা হয়। গ্লোবাল সীমাবদ্ধতায় যেখানে ক্লজ ব্যবহার করে আমাদের প্রতিটি রুটে পৃথকভাবে সীমাবদ্ধতা প্রয়োগ করতে হবে না, আমাদের কেবল boot() পদ্ধতির ভিতরে প্যাটার্নটি সংজ্ঞায়িত করতে হবে এবং এটি সমস্ত রুটে প্রয়োগ করা হবে।

একটি উদাহরণের মাধ্যমে বিষয়টি বোঝা যাক।

স্টেপ - ০১: RouteServiceProvider.php ফাইলের বুট পদ্ধতিতে প্যাটার্ন যোগ করুন।

  1. public function boot()  
  2. {  
  3. Route::pattern('id''[0-9]+');  
  4. parent::boot();  
  5. }  

স্টেপ - ০২: web.php ফাইলে রুট যোগ করুন।

  1. Route::get('user/{id}'function ($id) {  
  2.  return $id;  
  3. });  
  4. Route::get('post/{id}'function ($id) {  
  5.  return $id;  
  6. });  

আউটপুট:

যখন আমরা রুট প্যারামিটারটি '/user' URL-এ পাস করি, তখন আউটপুট হবে নিচের স্ক্রিনশটের মতো।

যখন আমরা রুট প্যারামিটারটি '/post' ইউআরএলে পাস করি তখন আউটপুট হবে নিচের স্ক্রিনশটের মতো।


আপনাদের সুবিধার্থে আমি আমার টিপস এন্ড ট্রিকসগুলি ভিডিও আকারে শেয়ার করার জন্য একটি ইউটিউব চ্যানেল তৈরি করেছি। আশা করি চ্যানেলটি Subscribe করবেন।

সৌজন্যে : বাংলাদেশের জনপ্রিয় এবং বর্তমান সময়ের বাংলা ভাষায় সকল গুরুত্বপূর্ণ বিষয়ক টিউটোরিয়াল সাইট - www.TutorialBD71.blogspot.com নিত্যনতুন বিভিন্ন বিষয়ে টিউটোরিয়াল পেতে সাইটটিতে সবসময় ভিজিট করুন।

Leave a Comment