লারাভেল ফরম:

Laravel বিভিন্ন অন্তর্নির্মিত ট্যাগ প্রদান করে html ফর্মগুলি পরিচালনা করে। Laravel একটি HTML এর জন্য প্রয়োজনীয় প্রধান উপাদানগুলি তৈরি করে। এইচটিএমএল উপাদানগুলি তৈরি করার জন্য আমাদের কম্পোজার ব্যবহার করে লারাভেলে এইচটিএমএল প্যাকেজ যুক্ত করতে হবে।

Installation:

চলুন আমরা প্রথমে কম্পোজার ব্যবহার করে প্যাকেজটি ইনস্টল করি। প্যাকেজটি ইনস্টল করতে গিট ব্যাশ উইন্ডোতে নিম্নলিখিত কমান্ডটি লিখুন।


  1. $composer require "laravelcollective/html":"^5.4.0"  

যখন আমরা গিট ব্যাশ উইন্ডোতে উপরের কমান্ডটি ইনসার্ট করব তখন আউটপুট হবে নিচের স্ক্রিনশটের মতো।

উপরের উইন্ডোতে আমরা লক্ষ্য করি যে কমান্ডের প্রয়োজন "$composer require "laravelcollective/html":"^5.4.0" এর জন্য প্রয়োজনীয় composer.json ফাইল আপডেট করে  laravelcollective/html

এরপর আপনার প্রজেক্টে config/app ডিরেক্টরি খুলুন এবং config/app.php ফাইলের প্রোভাইডার অ্যারেতে html প্রদানকারী যোগ করুন ।

উপরের হাইলাইট করাি এরিয়াটি config/app.php ফাইলের প্রদানকারী অ্যারেতে যোগ করা HtmlServiceProvider-এর প্রতিনিধিত্ব করে।

সবশেষে আমরা config/app.php ফাইলের অ্যালিয়াসেস অ্যারেতে দুটি শ্রেণীর উপনাম যোগ করি ।

  1. 'aliases' => [  
  2.          Form' => Illuminate\Html\FormFacade::class,  
  3.         'Html' => Illuminate\Html\HtmlFacade::class,   
  4.         ],  

একটি ফরম খোলা:

আমরা নিচের কোড ব্যবহার করে একটি ফরম খুলতে পারি।

  1. {Form::open(['url' => 'post/create'])}  
  2. //  
  3. {Form::close()}  

লারাভেল ফর্মগুলিতে উল্লেখ না থাকলে ডিফল্ট পদ্ধতিটিকে 'post' পদ্ধতি হিসাবে ধরে নেওয়া হয়, তবে আমরা অন্য কোনও পদ্ধতিও নির্দিষ্ট করতে স্বাধীন। যেহেতু ফর্মগুলি Post, Put, Delete এবং Get methods সমর্থন করে। তাই এই পদ্ধতিগুলি লুকানো পদ্ধতি ক্ষেত্র ব্যবহার করে একটি ফর্মে যোগ করা যেতে পারে।

যদি আমরা পুট পদ্ধতিটি একটি ফর্মে ব্যবহার করতে চাই তাহলে তার জন্য নিচের কোডটি দেওয়া হল।

  1. Form::open(['url'=>'Post/create , 'method'=>'Put''])  

আমরা এমন ফর্মগুলিও খুলতে পারি যা নামযুক্ত রুট বা কন্ট্রোলার ক্রিয়াগুলির দিকে নির্দেশ করে।

  1. Form.open(['route' => 'route.name'])  
  2. Form.open(['action' => 'Controller@method'])  

HTML Elements জেনারেট করা:

Label: লেবেল হল একটি সাধারণ পাঠ্য যা এইচটিএমএল আকারে উপস্থিত হয়। লারাভেলে একটি লেবেল উপাদান লেখার জন্য সিনট্যাক্স নিচে দেওয়া হল।

Form::label('phone_no', 'Phone Number');

আমরা একটি লেবেল উপাদানের অতিরিক্ত বৈশিষ্ট্যগুলিও নির্দিষ্ট করতে পারি।

Form::label('phone_no', 'Phone Number',['class'=>'phone_no']);

এই ক্ষেত্রে আমরা একটি লেবেল উপাদানে একটি বৈশিষ্ট্য হিসাবে 'class' যোগ করেছি।

Text: Text এমন একটি এলাকা যেখানে ব্যবহারকারী তাদের ডেটা ইনপুট করতে পারে। লারাভেলে একটি Text Area তৈরি করার জন্য সিনট্যাক্স নীচে দেওয়া হল।

Form::text('email');;

আমরা টেক্সট বক্সে ডিফল্ট মানও নির্দিষ্ট করতে পারি।

Form::text('email','akshita123@gmail.com');

Password: পাসওয়ার্ড হল এমন একটি এইচটিএমএল উপাদান যা ব্যবহারকারীর ইনপুট ক্যাপচার করে এবং প্রতিটি অক্ষর প্রবেশ করা অঙ্কগুলি প্রদর্শনের পরিবর্তে (*) আকারে উপস্থাপন করা হয়। পাসওয়ার্ড ক্ষেত্রের জন্য সিনট্যাক্স নচে দেওয়া হল।
Form::password('password',['class'=>'pass']);

Checkboxes:

আমরা নিচের মতো চেকবক্স তৈরি করতে পারি।

Form::checkbox('name','value');

ডিফল্টরূপে চেকবক্সটি আনচেক করা হয়। আমরা চেকবক্স উপাদানের সত্য মান প্রদান করে বক্স চেক করতে পারি।

Form::checkbox('name','value',true);

Radio buttons:

আমরা নিচের মতো রেডিও বোতাম তৈরি করতে পারি।

Form::radio('name','value');

ডিফল্টরূপে রেডিও বোতাম নির্বাচন করা হয় না। আমরা রেডিও বোতাম উপাদানটিকে সত্য মান প্রদান করে রেডিও বোতামটিও নির্বাচন করতে পারি।

Form::radio(''name','value',true);

Number: আমরা একটি ফর্মে নম্বর ইনপুট ক্ষেত্র যোগ করতে পারি। সংখ্যা ইনপুট ক্ষেত্রের জন্য সিনট্যাক্স নীচে দেওয়া হল।

Form::number('name','value');

ফাইল ইনপুট ক্ষেত্র হল একটি html উপাদান যা ফাইল আপলোড করার জন্য একটি ফর্মে ব্যবহৃত হয়। ফাইল ইনপুট ক্ষেত্রের জন্য সিনট্যাক্স নীচে দেওয়া হল।

Form::file('image');

যেখানে ইমেজ ফাইল ইনপুট ক্ষেত্রের নাম।

Drop-down list:

ড্রপ-ডাউন উপাদানটি সমস্ত পূর্ব-নির্ধারিত বিকল্পগুলির তালিকা প্রদর্শন করতে ব্যবহৃত হয়। একটি ড্রপ-ডাউন মেনু তৈরির সিনট্যাক্স নীচে দেওয়া হল।

Form::select('digits', [1,2,3,4,5,6])

আমরা একটি ডিফল্ট মান সহ ড্রপ-ডাউন তালিকা সেট করতে পারি।

Form::select('digits',[1,2,3,4,5,6],'2')

উপরের কোডটি অ্যারের দ্বিতীয় উপাদানের সাথে ড্রপ-ডাউন তালিকার মান সেট করে, অর্থাৎ 3 যেমন 0 দিয়ে ইন্ডেক্সিং শুরু হয়।

Grouped list তৈরি করা:

আমরা ড্রপ-ডাউন এলিমেন্টের মাধ্যমে গ্রুপ করা তালিকা তৈরি করতে পারি। আসুন একটি উদাহরণের মাধ্যমে এটি দেখি।

Form::select('animal',[
        'fruits' => ['Apple','Mango','Orange'],
        'Vegetables' => ['Potato','Tomato','Cabbage'],
])
একটি ব্যাপ্তি সহ ড্রপ-ডাউন তালিকা তৈরি করা হচ্ছে।
Form::selectRange('number',1,30)

মাসের নাম সহ ড্রপ-ডাউন তালিকা তৈরি করা হচ্ছে।
Form.selectMonth('month')

Date:

বছর মাস এবং দিন। একটি তারিখ ইনপুট ক্ষেত্র তৈরি করার জন্য সিনট্যাক্স নীচে দেওয়া হল।

Form::date('name',\Carbon\Carbon::now())

Buttons: আমরা একটি ফর্মের বোতাম ক্ষেত্রটি ব্যবহার করে একটি ওয়েব আকারে বোতাম তৈরি করতে পারি। আসুন এর সিনট্যাক্স দেখি।

Form::submit('Click me!!')

উপরের লাইনটি "Click me!!" নামে সাবমিট বোতাম তৈরি করে ।

আসুন একটি উদাহরণের মাধ্যমে ফর্মগুলি বুঝতে পারি।

একটি ফর্ম তৈরি করতে নিম্নলিখিত ধাপগুলি প্রয়োজনীয়।

স্টেপ-০১: প্রথমে আমরা master.blade.php ফাইল নামে মাস্টার লেআউট ফাইল তৈরি করি।

  1. <html>  
  2. <head>  
  3. <title> Master Page Layout </title>  
  4. </head>  
  5. <body>  
  6. <div class="container">  
  7. @yield('content')  
  8. </div>  
  9. </body>  
  10. </html>  

স্টেপ-০২: দ্বিতীয়ত আমরা contact.blade.php ফাইলটি তৈরি করি যাতে আমরা ফর্মের কোড যোগ করি।

  1. @extends('layout.master')  
  2. @section('content')  
  3. <h1>Contact Page</h1>  
  4.   
  5. {!! Form::open(['route'=>'posts.store']) !!}  
  6.   
  7.   
  8. <div class="form-group">  
  9. {{ form::label('name','Name')}}  
  10. {{form::text('name','',['class'=>'form-control','placeholder'=>'Name'])}}  
  11. </div>  
  12. <br>  
  13. <div class="form-group">  
  14. {{ form::label('gender','Gender')}}  
  15. {{ form::radio('male','Male')}} Male  
  16. {{ form::radio('Female','Female')}} Female  
  17. </div>  
  18. <br>  
  19. <div class="form-group">  
  20. {{ form::label('profile','Profile')}}  
  21. {{form::select('list',['Software Developer','QA Analyst','Manager','HR'])}}  
  22. </div>  
  23. <br>  
  24. <div class="form-group">  
  25. {{ form::label('dob','Date of Birth')}}  
  26. {{Form::date('dob', \Carbon\Carbon::now())}}  
  27. </div>  
  28. <br>  
  29. {{form::label('skills','Skills Description')}}  
  30. <div class="form-group">  
  31.   
  32. {{form::textarea('body','',['placeholder'=>'Skills Description'])}}  
  33. </div>  
  34. <br>  
  35. <div class="form-group">  
  36. {{ form::label('percentage','Percentage in 12th')}}  
  37. {{form::text('percent','',['class'=>'form-control','placeholder'=>'Percentage in 12th'])}}  
  38. </div>  
  39. <br>  
  40. <div class="form-group">  
  41. {{ form::label('experience','Experience')}}  
  42. {{form::number('exp','number')}}  
  43. </div>  
  44. <br>  
  45. <div class="form-group">  
  46. {{ form::label('expected_salary','Expected Salary')}}  
  47. {{form::text('salary','',['placeholder'=>'Expected Salary'])}}  
  48. </div>  
  49. <br>  
  50.   
  51. <div class="form-group">  
  52. {{ form::label('resume','Resume Upload')}}  
  53. {{Form::file('resume')}}  
  54. </div>  
  55. <br>  
  56.   
  57. {{Form::submit('Submit', ['class'=>'btn btn-primary'])}}  
  58.   
  59.   
  60. {!!Form::close()!!}  
  61. @stop  

উপরের কোডটি বিভিন্ন ক্ষেত্র সম্বলিত ফর্ম তৈরি করতে ব্যবহৃত হয়।

স্টেপ-০৩: এখন আমরা PostsController নামে রিসোর্স কন্ট্রোলার তৈরি করি এবং আমরা শুধুমাত্র নীচে দেওয়া একটি store() ফাংশনে কার্যকারিতা যোগ করেছি।

PostController.php

  1. <?php  
  2.   
  3. namespace App\Http\Controllers;  
  4.   
  5. use Illuminate\Http\Request;  
  6.   
  7. class PostsController extends Controller  
  8. {  
  9.     /** 
  10.      * Display a listing of the resource. 
  11.      * 
  12.      * @return \Illuminate\Http\Response 
  13.      */  
  14.     public function index()  
  15.     {  
  16.         //  
  17.     }  
  18.   
  19.     /** 
  20.      * Show the form for creating a new resource. 
  21.      * 
  22.      * @return \Illuminate\Http\Response 
  23.      */  
  24.     public function create()  
  25.     {  
  26.         //  
  27.     }  
  28.   
  29.     /** 
  30.      * Store a newly created resource in storage. 
  31.      * 
  32.      * @param  \Illuminate\Http\Request  $request 
  33.      * @return \Illuminate\Http\Response 
  34.      */  
  35.     public function store(Request $request)  
  36.     {  
  37.        $this->validate($request,[  
  38.        'name'=>'required',  
  39.        'list'=> 'required',  
  40.        'dob'=>'required',  
  41.        'body'=>'required',  
  42.        'percent'=>'required',  
  43.        'exp'=>'required',  
  44.        'salary'=>'required',  
  45.        'resume'=>'required']);  
  46.            
  47.       return "Resume has been updated successfully";  
  48.     
  49.     }  
  50.   
  51.     /** 
  52.      * Display the specified resource. 
  53.      * 
  54.      * @param  int  $id 
  55.      * @return \Illuminate\Http\Response 
  56.      */  
  57.     public function show($id)  
  58.     {  
  59.         //  
  60.     }  
  61.   
  62.     /** 
  63.      * Show the form for editing the specified resource. 
  64.      * 
  65.      * @param  int  $id 
  66.      * @return \Illuminate\Http\Response 
  67.      */  
  68.     public function edit($id)  
  69.     {  
  70.         //  
  71.     }  
  72.   
  73.     /** 
  74.      * Update the specified resource in storage. 
  75.      * 
  76.      * @param  \Illuminate\Http\Request  $request 
  77.      * @param  int  $id 
  78.      * @return \Illuminate\Http\Response 
  79.      */  
  80.     public function update(Request $request$id)  
  81.     {  
  82.         //  
  83.     }  
  84.   
  85.     /** 
  86.      * Remove the specified resource from storage. 
  87.      * 
  88.      * @param  int  $id 
  89.      * @return \Illuminate\Http\Response 
  90.      */  
  91.     public function destroy($id)  
  92.     {  
  93.         //  
  94.     }  
  95. }  

উপরের কোডে আমরা একটি store() ফাংশনে কোড যোগ করি, যা একটি ফর্মের সমস্ত ক্ষেত্র যাচাই করে।

স্টেপ-৪: সবশেষে web.php ফাইলে রুট যোগ করুন ।

  1. Route::get('/contact',function()  
  2. {  
  3.   return view('contact');  
  4. });  

আউটপুট

ধরুন আমি উপরের ফর্মে নিম্নলিখিত বিশদগুলি লিখি।

সমস্ত বিবরণ পূরণ করার পরে Submit বোতামে ক্লিক করুন তারপর আউটপুট হবে।

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

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

Leave a Comment