লারাভেল crud:

এই টপিকে আমরা শিখব কিভাবে লারাভেল 5.8 এ লারাভেল crud তৈরি করতে হয় ।

crud অ্যাপ তৈরি করার জন্য নিম্নলিখিত ধাপগুলি প্রয়োজন।

প্রথমত আমরা laravel 5.8'crud' নামে একটি প্রজেক্ট তৈরি করি।

উপরের স্ক্রিনশটটি দেখায় যে ‘crud' প্রকল্পটি সফলভাবে তৈরি করা হয়েছে।

এখন আমরা phpMyAdmin-এ ডাটাবেস তৈরি করি।

উপরের স্ক্রিনশটে আমরা laravel_crud হিসাবে ডাটাবেসের নাম প্রদান করেছি ।

আমাদের অ্যাপ্লিকেশন একটি laravel_crud ডাটাবেসের সাথে কাজ করবে । .env ফাইলটি সম্পাদনা করুন ।

উপরের স্ক্রিনশটটি দেখায় যে আমরা .env ফাইলটি পরিবর্তন করেছি। আমরা DB_Database ফিল্ডে laravel_crud হিসাবে ডাটাবেসের নাম DB_Username- এ রুট দিয়েছি । আমরা পাসওয়ার্ড ফিল্ডে ফাঁকা রেখেছি।

এখন আমরা নীচের স্ক্রিনশটে দেখানো একটি laravel_crud ডাটাবেসে একটি টেবিল তৈরি করতে মাইগ্রেশন তৈরি করি।

উপরের-হাইলাইট করা বিবৃতিটি একটি মাইগ্রেশন তৈরি করে "create_user_table" এবং টেবিলের নাম হল 'user'

উপরের ধাপে আপনি যে মাইগ্রেশন ফাইলটি তৈরি করেছেন সেটি খুলুন।

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

উপরের কোডে দেখানো ব্যবহারকারী টেবিলে আমরা চারটি নতুন কলাম (প্রথম নাম, পদবি, লিঙ্গ, যোগ্যতা) তৈরি করেছি।

একটি laravel_crud ডাটাবেসে উপরের পরিবর্তনগুলি স্থানান্তর করতে , আমরা নীচে দেওয়া কমান্ডটি ব্যবহার করি:

php কারিগর মাইগ্রেট;


মাইগ্রেশনের পরে নীচের স্ক্রিনশটে দেওয়া ডাটাবেসটি দেখুন।


উপরের স্ক্রীনটি দেখায় যে ব্যবহারকারী টেবিলটি laravel_crud ডাটাবেসের অধীনে তৈরি করা হয়েছে।

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

উপরের স্ক্রিনটি দেখায় যে crud মডেলটি সফলভাবে তৈরি করা হয়েছে।

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

Crud.php

  1. <?php  
  2. namespace App;  
  3. use Illuminate\Database\Eloquent\Model;  
  4. class Crud extends Model  
  5. {  
  6.     //  
  7. protected $table='user';  
  8. protected $fillable=['first_name','last_name','gender','qualifications'];  
  9. }  

উপরের মডেলে আমরা দুটি বৈশিষ্ট্য প্রদান করেছি অর্থাৎ $table এবং $fillable$table হল একটি অ্যাট্রিবিউট যা টেবিলের নাম ধারণ করে যা Crud মডেল ব্যবহার করতে যাচ্ছে যখন $fillable অ্যাট্রিবিউটে কলামের নামের অ্যারে রয়েছে যা NULL হতে পারে না।

এখন আমরা একটি সংস্থান সহ একটি নিয়ামক তৈরি করি যা সমস্ত CRUD অপারেশন বাস্তবায়ন করে।

উপরের স্ক্রিনশটটি দেখায় যে CrudsController সফলভাবে তৈরি করা হয়েছে।

CrudsController এর গঠন নিচে দেওয়া হল:

  1. <?php  
  2. namespace App\Http\Controllers;  
  3. use Illuminate\Http\Request;  
  4. class CrudsController extends Controller  
  5. {  
  6.     /** 
  7.      * Display a listing of the resource. 
  8.      * 
  9.      * @return \Illuminate\Http\Response 
  10.      */  
  11.     public function index()  
  12.     {  
  13.         //  
  14.     }  
  15.   
  16.     /** 
  17.      * Show the form for creating a new resource. 
  18.      * 
  19.      * @return \Illuminate\Http\Response 
  20.      */  
  21.     public function create()  
  22.     {  
  23.         //  
  24.     }  
  25.   
  26.     /** 
  27.      * Store a newly created resource in storage. 
  28.      * 
  29.      * @param  \Illuminate\Http\Request  $request 
  30.      * @return \Illuminate\Http\Response 
  31.      */  
  32.     public function store(Request $request)  
  33.     {  
  34.         //  
  35.     }  
  36.   
  37.     /** 
  38.      * Display the specified resource. 
  39.      * 
  40.      * @param  int  $id 
  41.      * @return \Illuminate\Http\Response 
  42.      */  
  43.     public function show($id)  
  44.     {  
  45.         //  
  46.     }  
  47.   
  48.     /** 
  49.      * Show the form for editing the specified resource. 
  50.      * 
  51.      * @param  int  $id 
  52.      * @return \Illuminate\Http\Response 
  53.      */  
  54.     public function edit($id)  
  55.     {  
  56.         //  
  57.     }  
  58.   
  59.     /** 
  60.      * Update the specified resource in storage. 
  61.      * 
  62.      * @param  \Illuminate\Http\Request  $request 
  63.      * @param  int  $id 
  64.      * @return \Illuminate\Http\Response 
  65.      */  
  66.     public function update(Request $request$id)  
  67.     {  
  68.         //  
  69.     }  
  70.   
  71.     /** 
  72.      * Remove the specified resource from storage. 
  73.      * 
  74.      * @param  int  $id 
  75.      * @return \Illuminate\Http\Response 
  76.      */  
  77.     public function destroy($id)  
  78.     {  
  79.         //  
  80.     }  
  81. }  

CrudsController-এ অন্তর্নির্মিত ফাংশন (index(), create(), store(), show(), edit(), update(), delete()) থাকে।

এখন আমরা CRUD অপারেশনগুলি CrudsController-এ উপলব্ধ পদ্ধতির মাধ্যমে বাস্তবায়ন করি।

Insert Operation:

প্রথমে আমরা web.php ফাইলে রুট তৈরি করি যা সন্নিবেশ অপারেশন করে।

  1. Route::get('/insert'function () {  
  2.     return view('create');  
  3. });  

এখন আমরা resources/views ডিরেক্টরিতে create.blade.php নামে একটি ভিউ তৈরি করি ।

  1. @extends('layout.master')  
  2. @section('content')  
  3. <form method="post" action="{{ route('users.store') }}">  
  4.    @csrf     
  5.           <div class="form-group">      
  6.               <label for="first_name">First Name:</label><br/><br/>  
  7.               <input type="text" class="form-control" name="first_name"/><br/><br/>  
  8.           </div>  
  9. <div class="form-group">      
  10. <label for="first_name">Last Name:</label><br/><br/>  
  11.               <input type="text" class="form-control" name="last_name"/><br/><br/>  
  12.           </div>  
  13. <div class="form-group">      
  14.               <label for="gender">Gender:</label><br/><br/>  
  15.               <input type="text" class="form-control" name="gender"/><br/><br/>  
  16.           </div>  
  17. <div class="form-group">      
  18.               <label for="qualifications">Qualifications:</label><br/><br/>  
  19.               <input type="text" class="form-control" name="qualifications"/><br/><br/>  
  20.           </div>  
  21. <br/>  
  22. <button type="submit" class="btn-btn" >Insert</button>  
  23. </form>  
  24. @endsection  

উপরের কোডের আউটপুট হবে:


উপরের কোডটি CrudsController ক্লাসের স্টোর ফাংশনকে কল করে এবং store() ফাংশনের কোডটি নীচে দেওয়া হয়েছে।

  1. public function store(Request $request)  
  2.    
  3.     {  
  4.     
  5.         $request->validate([  
  6.             'first_name'=>'required',  
  7.             'last_name'=>'required',  
  8.             'gender'=>'required',  
  9.             'qualifications'=>'required'  
  10.         ]);  
  11.   
  12.         $crud = new Crud;  
  13.         $crud->first_name =  $request->get('first_name');  
  14.         $crud->last_name = $request->get('last_name');  
  15.         $crud->qualifications = $request->get('qualifications');  
  16.         $crud->gender = $request->get('gender');  
  17.         $crud->save();  
  18.         }  

ধরুন আমরা ফর্মে কিছু ডেটা লিখি এবং তারপরে নীচের স্ক্রিনশটে দেখানো সন্নিবেশ বোতামে ক্লিক করুন।


আসুন ডাটাবেস দেখি:


উপরের স্ক্রিনশটটি দেখায় যে আমরা ফর্মটিতে যে ডেটা প্রবেশ করিয়েছি তা সফলভাবে ডাটাবেসে সংরক্ষিত হয়েছে।

রেকর্ড পুনরুদ্ধার করা হচ্ছে

প্রথমে আমরা web.php ফাইলে একটি রুট তৈরি করি।

Route::get('/show','CrudsController@index');

উপরের বিবৃতিটি একটি url ' /show ' সহ একটি রুট তৈরি করে যা CrudsController ক্লাসের index() পদ্ধতিকে কল করে।

উপরের রুটটি CrudsController- এর সূচক ফাংশনকে কল করে এবং index() পদ্ধতির কোড নীচে দেওয়া হল:

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

উপরের কোডে আমরা all() পদ্ধতি ব্যবহার করি যা একটি Crud মডেলের সাথে যুক্ত একটি টেবিলের সমস্ত রেকর্ড পুনরুদ্ধার করে এবং $cruds অবজেক্টে সংরক্ষণ করে। আমরা view() পদ্ধতি ব্যবহার করে index.blade.php ফাইলে $cruds অবজেক্ট পাস করি ।

index.blade.php ফাইলের কোড নিচে দেওয়া হল:

  1. @extends('layout.master')  
  2. @section('content')  
  3. <table border="1px">  
  4. <thead>  
  5. <tr>  
  6. <td>  
  7. ID </td>  
  8. <td>  
  9. First Name </td>  
  10. <td>  
  11. Last Name </td>  
  12. <td>  
  13. Gender </td>  
  14. <td>  
  15. Qualifications </td>  
  16. </tr>  
  17. </thead>  
  18. <tbody>  
  19. @foreach($cruds as $crud)  
  20.         <tr border="none">  
  21.             <td>{{$crud->id}}</td>  
  22.             <td>{{$crud->first_name}}</td>  
  23.             <td>{{$crud->last_name}}</td>  
  24.             <td>{{$crud->gender}}</td>  
  25.             <td>{{$crud->qualifications}}</td>  
  26. <td >  
  27. <form action="{{ route('users.destroy', $crud->id)}}" method="post">  
  28.                   @csrf  
  29.                   @method('DELETE')  
  30.                   <button class="btn btn-danger" type="submit">Delete</button>  
  31.                 </form>  
  32. </td>  
  33. <td >  
  34. <form action="{{ route('users.edit', $crud->id)}}" method="GET">  
  35.                   @csrf  
  36.                    
  37.                   <button class="btn btn-danger" type="submit">Edit</button>  
  38.                 </form>  
  39. </td>  
  40.   
  41.          </tr>  
  42. @endforeach  
  43. </tbody>  
  44. </table>  
  45. @endsection  

উপরের কোডের আউটপুট হবে।


অপারেশন আপডেট করুন:

যখন আমরা সম্পাদনা বোতামে ক্লিক করি তখন এটি CrudsController ক্লাসের edit() ফাংশনকে কল করে। edit() পদ্ধতির কোড নীচে দেওয়া হল:

CrudsController.php

  1. public function edit($id)  
  2.     {  
  3.         //  
  4.      $crud= Crud::find($id);  
  5.      return view('edit', compact('crud'));  
  6.     }  

উপরের কোডে আমরা find() পদ্ধতি ব্যবহার করি যা একটি প্রদত্ত আইডির রেকর্ড খুঁজে পায় এবং $crud অবজেক্টে সংরক্ষণ করে। আমরা crud অবজেক্টটিকে edit.blade.php ফাইলে পাস করি।

edit.blade.php

  1. @extends('layout.master')  
  2. @section('content')  
  3. <form method="Post" action="{{route('users.update',$crud->id)}}">  
  4. @method('PATCH')     
  5.  @csrf     
  6.           <div class="form-group">      
  7.               <label for="first_name">First Name:</label><br/><br/>  
  8.               <input type="text" class="form-control" name="first_name" value={{$crud->first_name}}><br/><br/>  
  9.           </div>  
  10.   
  11. <div class="form-group">      
  12.               <label for="first_name">Last Name:</label><br/><br/>  
  13.               <input type="text" class="form-control" name="last_name" value={{$crud->last_name}}><br/><br/>  
  14.           </div>  
  15. <div class="form-group">      
  16.               <label for="gender">Gender:</label><br/><br/>  
  17.               <input type="text" class="form-control" name="gender" value={{$crud->gender}}><br/><br/>  
  18.           </div>  
  19. <div class="form-group">      
  20.               <label for="qualifications">Qualifications:</label><br/><br/>  
  21.               <input type="text" class="form-control" name="qualifications" value={{$crud->qualifications}}><br/><br/>  
  22.           </div>  
  23. <br/>  
  24.   
  25. <button type="submit" class="btn-btn" >Update</button>  
  26. </form>  
  27.   
  28.   
  29. @endsection  

Edit বোতামে ক্লিক করার পরে স্ক্রীনটি প্রদর্শিত হবে যা নীচে দেখানো হয়েছে এবং এটি আপনাকে ডেটা আপডেট করতে বলে।


উপরের স্ক্রীনে আপনি আপনার প্রয়োজন অনুযায়ী যেকোনো ক্ষেত্র পরিবর্তন করতে পারেন। ধরুন আমি প্রথম নামে 'Harshita' পদবিতে tripathi এবং অন্যান্য ক্ষেত্রগুলি একই রয়েছি নীচে দেখানো হিসাবে আপডেট বোতামে ক্লিক করুন।


আপডেট বোতামে ক্লিক করার পর নিয়ন্ত্রণ CrudsController.php ফাইলের update() ফাংশনে চলে যায়।

CrudsController.php

  1. public function edit($id)  
  2.     {  
  3.         //  
  4.      $crud= Crud::find($id);  
  5.      return view('edit', compact('crud'));  
  6.     }  

উপরের কোডে আমরা find() পদ্ধতি ব্যবহার করি যা একটি প্রদত্ত আইডির রেকর্ড খুঁজে পায় এবং $crud অবজেক্টে সংরক্ষণ করে। আমরা crud অবজেক্টটিকে edit.blade.php ফাইলে পাস করি।

edit.blade.php

  1. public function update(Request $request$id)  
  2.     {  
  3.         //  
  4.  $request->validate([  
  5.             'first_name'=>'required',  
  6.             'last_name'=>'required',  
  7.             'gender'=>'required',  
  8.             'qualifications'=>'required'  
  9.         ]);  
  10.   
  11.         $crud = Crud::find();  
  12.         $crud->first_name =  $request->get('first_name');  
  13.         $crud->last_name = $request->get('last_name');  
  14.         $crud->qualifications = $request->get('qualifications');  
  15.         $crud->gender = $request->get('gender');  
  16.         
  17.         $crud->save();  
  18.     }  

উপরের কোডটি ডাটাবেস আপডেট করে।

আসুন ডাটাবেস দেখি:


উপরের স্ক্রিনশটটি দেখায় যে ডেটা সফলভাবে আপডেট করা হয়েছে।

অপারেশন মুছুন

যদি আমরা ডিলিট বাটনে ক্লিক করি তাহলে এটি CrudsController ক্লাসের Destruct() ফাংশনকে কল করে। destroy() পদ্ধতির কোড নিচে দেওয়া হল।

  1. public function destroy($id)  
  2.     {  
  3.         $crud=Crud::find($id);  
  4.         $crud->delete();  
  5.     }  

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

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

Leave a Comment