লারাভেল ভেলিডেশন বা বৈধতা:

ভেলিডেশন বা বৈধতা হল ইনকামিং ডেটা চেক করার প্রক্রিয়া। ডিফল্টরূপে laravel বেস কন্ট্রোলার ক্লাস প্রদান করে যেটি সমস্ত ইনকামিং Http অনুরোধগুলিকে যাচাই করতে ValidatesRequests বৈশিষ্ট্য ব্যবহার করে।

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

আমরা একটি অ্যাপ্লিকেশন তৈরি করব যাতে আমরা শিক্ষার্থীর নাম যুক্ত করব।

প্রথমত আমরা নতুন ল্যারাভেল প্রজেক্ট তৈরি করি যেখানে আমরা যাচাই করি। কমান্ড-লাইন টুলে নিচে দেওয়া কমান্ডটি লিখুন

composer create-project laravel/laravel=5.8 student_app -prefer-dist;

উপরের আউটপুটটি দেখায় যে student_app প্রকল্পটি xampp/htdocs ডিরেক্টরিতে সফলভাবে তৈরি করা হয়েছে ।

একটি প্রকল্প তৈরি করার পরে, আমরা প্রথমে ডেটাবেস মাইগ্রেশন সহ একটি মডেল তৈরি করব।

উপরের বিবৃতিটি অ্যাপ ফোল্ডারে একটি মডেল 'Student' এবং মাইগ্রেশন ফোল্ডারে 'create_students_table' তৈরি করে। 'create_students_table.php' ফাইলের গঠন নিচে দেওয়া হল।

  1. <?php  
  2. use Illuminate\Support\Facades\Schema;  
  3. use Illuminate\Database\Schema\Blueprint;  
  4. use Illuminate\Database\Migrations\Migration;  
  5. class CreateStudentsTable extends Migration  
  6. {  
  7.     /** 
  8.      * Run the migrations. 
  9.      * 
  10.      * @return void 
  11.      */  
  12.     public function up()  
  13.     {  
  14.         Schema::create('students', function (Blueprint $table) {  
  15.             $table->bigIncrements('id');  
  16.             $table->string('name');  
  17.             $table->timestamps();  
  18.         });  
  19.     }  
  20.   
  21.     /** 
  22.      * Reverse the migrations. 
  23.      * 
  24.      * @return void 
  25.      */  
  26.     public function down()  
  27.     {  
  28.         Schema::dropIfExists('students');  
  29.     }  
  30. }  

উপরের কোডটি 'students' এর একটি টেবিল তৈরি করে যার চারটি কলাম রয়েছে (id, name, created_at, update_at)

ব্যবহারকারীর টেবিলে উপলভ্য ডেটা:

user table

নীচের কমান্ডটি ব্যবহার করে একটি ডাটাবেসে উপরের পরিবর্তনগুলি স্থানান্তর করুন।

php artisan migrate;

এখন আমরা একটি নিয়ামক তৈরি করি যা সমস্ত ডাটাবেস অপারেশন পরিচালনা করে।

একটি কন্ট্রোলার তৈরি করার পরে আমরা একটি কন্ট্রোলারের সমস্ত পদ্ধতির রুট তৈরি করব। একটি রুট তৈরি করতে আমাদের web.php ফাইলে নিম্নলিখিত কোড লিখতে হবে ।

Route::resource('student','StudentController');

এই ধাপে আমরা StudentController ক্লাসের index() পদ্ধতি সংজ্ঞায়িত করব এবং index() পদ্ধতির কোড নিচে দেওয়া হল।

  1. public function index()  
  2. {  
  3. $student=Student::all();  
  4. return view('index',compact('student'));  
  5. }  

এখন আমরা আমাদের অ্যাপ্লিকেশনটির একটি ভিউ পৃষ্ঠা ( index.blade.php ) তৈরি করব।

  1. @extends('layout.master')  
  2. @section('content')  
  3. <h1> Student </h1>  
  4. <form action=="{{ route('student.store') }}"  method="Post">  
  5. @csrf  
  6. <div><input type="text" name="name"></div>  
  7. <br/>  
  8. <div><input type="button" value="Add Students"> </div>  
  9. </form>  
  10. <ul>  
  11. @foreach($student as $students)  
  12. <li>{{$students->name}}</li>  
  13.  @endforeach  
  14. <ul>  
  15. @endsection  

উপরের কোডের আউটপুট নীচে দেখানো হয়েছে।

যেহেতু আমরা জানি যে StudentController এindex() পদ্ধতির URI হল '/student', তাই আমরা যখন url 'localhost/student_app/public/student' হিট করি তখন এটিকে index() মেথড বলে । index () পদ্ধতিটি index.blade.php ফাইলের ভিউ প্রদান করে যা উপরের স্ক্রিনশটে দেখানো হয়েছে।

যখন আমরা উপরের স্ক্রিনশটে দেখানো টেক্সট বক্সে ডেটা প্রবেশ করি তখন এটি একটি ডাটাবেসে সংরক্ষণ করা উচিত। এটি অর্জন করার জন্য store() ফাংশনের কোডটি নীচে দেওয়া হল।

  1. public function store(Request $request)  
  2.     {  
  3.         $data=$request->validate([   //  validating the name field.  
  4.         'name'=>'required']);  
  5.         $student=new Student;  
  6.         $student->name=$request->get('name');  
  7.         $student->save();  
  8.     }  

আউটপুট

যখন আমরা 'Add Students বোতামে ক্লিক করি এবং তারপর পৃষ্ঠাটি রিফ্রেশ করি আউটপুট হবে।

আমরা উপরের স্ক্রিনশটটিতে দেখতে পাচ্ছি যে ছাত্র তালিকায় 'Himanshu' যোগ করা হয়েছে যার অর্থ হল 'Add Students' বোতামটি সঠিকভাবে কাজ করছে।

কখনও কখনও পরিস্থিতি দেখা দেয় যখন আমরা কোনও ডেটা প্রবেশ করি না এবং আমরা 'Add Students' বোতাম টিপুন এই ভেলিডেশন বা বৈধতা প্রয়োজন। আমরা store() পদ্ধতিতে বৈধকরণ কোড যোগ করেছি যা 'name' ক্ষেত্রটিকে বৈধ করে কিন্তু আমরা কোনো ত্রুটি বার্তা প্রদর্শন করিনি। ত্রুটি বার্তা প্রদর্শন করতে laravel ত্রুটি ভেরিয়েবল প্রদান করেছে যা ত্রুটি বার্তা প্রদর্শন করে। এটি হিসাবে ব্যবহার করা যেতে পারে।

  1. {{$errors->first('name')}}  

index.blade.php- এ উপরের লাইনটি যোগ করার পরে index.blade.php ফাইলের কোডটি এরকম দেখাচ্ছে।

index.blade.php

  1. @extends('layout.master')  
  2. @section('content')  
  3. <h1> Student </h1>  
  4. <form action="{{ route('student.store') }}" method="Post">  
  5. @csrf  
  6. <div><input type="text" name="name"></div>  
  7. <br/>  
  8. <div>{{$errors->first('name')}}</div>  
  9. <br/>  
  10. <div><button type="submit">Add Students </div>  
  11. </form>  
  12. <ul>  
  13. @foreach($student as $students)  
  14. <li>{{$students->name}}</li>  
  15.  @endforeach  
  16. <ul>  
  17. @endsection  

আউটপুট

আমরা টেক্সটবক্স ক্ষেত্রের অক্ষরগুলিকেও সীমাবদ্ধ করতে পারি। আমরা যদি নামের ক্ষেত্রে কমপক্ষে ৫টি অক্ষর লিখতে চাই তবে আমরা একটি বৈধ ফাংশনে মিন ফিল্ডটি ব্যবহার করতে পারি।

  1. public function store(Request $request)  
  2.     {  
  3.         $data=$request->validate([  
  4.         'name'=>'required|min:5']);  
  5.         $student=new Student;  
  6.         $student->name=$request->get('name');  
  7.         $student->save();  
  8.     }  

আউটপুট

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

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

Leave a Comment