Comment supprimer plusieurs enregistrements à l'aide d'une case à cocher dans Laravel 10

La suppression de plusieurs enregistrements à l'aide d'une case à cocher dans Laravel est un moyen de supprimer plusieurs enregistrements d'une table de base de données à la fois. Cela peut être fait en ajoutant une case à cocher à chaque enregistrement dans le tableau, puis en permettant à l'utilisateur de sélectionner les enregistrements qu'il souhaite supprimer.

Dans ce didacticiel, nous allons apprendre à supprimer plusieurs enregistrements dans Laravel 10 à l'aide d'une case à cocher. voyons supprimer plusieurs enregistrements dans laravel 10, comment supprimer une ligne particulière dans laravel 10 et comment supprimer plusieurs lignes dans laravel 10.

Table des matières

  • Étape 1 : Installer Laravel 10
  • Étape 2 : configurer la base de données
  • Étape 3 : Ajouter des enregistrements factices à l'aide de Tinker
  • Étape 4 : Créer un contrôleur
  • Étape 5 : ajouter un itinéraire
  • Étape 6 : Créer un fichier lame
     

Étape 1 : Installer Laravel 10

Dans cette étape, nous allons installer laravel 10 à l'aide de la commande suivante.

composer create-project --prefer-dist laravel/laravel laravel_10_checkbox_example

Étape 2 : configurer la base de données

Maintenant, nous allons configurer les détails de la base de données comme dans l'exemple ci-dessous.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_10_checkbox_example
DB_USERNAME=root
DB_PASSWORD=root

Étape 3 : Ajouter des enregistrements factices à l'aide de Tinker

Dans cette étape, nous ajouterons des enregistrements factices dans la base de données pour effectuer la suppression de plusieurs enregistrements de la base de données. Alors, exécutez la commande suivante et créez des enregistrements factices.

php artisan tinker
factory(App\User::class, 100)->create();

Étape 4 : Créer un contrôleur

Dans cette étape, nous allons créer UserController à l'aide de la commande suivante. Alors, ajoutez le code ci-dessous à ce fichier.

php artisan make:controller UserController

app/Http/Controllers/UserController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
{
	public function index(Request $request)
	{
		$list = User::orderby('id', 'desc')->get();
		
    	return view('index')->with('list', $list);
	}

	public function deleteMultipleUsers(Request $request)
	{
		$id = $request->id;

		foreach ($id as $user) 
		{
		  User::where('id', $user)->delete();
		}
		return back();
	}
}

Étape 5 : ajouter un itinéraire

Dans cette étape, nous allons ajouter des routes au fichier web.php .

routes/web.php

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;

Route::get('/', function () {
    return view('welcome');
});

Route::controller(UserController::class)->group(function () {
    Route::get('index', 'index');
    Route::post('delete-multiple-user', 'deleteMultipleUsers')->name('deleteMultipleUsers');
});

Étape 6 : Créer un fichier lame

Maintenant, nous allons créer un fichier index.blade.php. Alors, ajoutez le code suivant à ce fichier.

ressources/views/index.blade.php

<!DOCTYPE html>
<html>
<head>
	<title>Laravel 10 Delete Multiple Records Using Checkbox</title>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
	<h1>Laravel 10 Delete Multiple Records Using Checkbox - Websolutionstuff</h1>
	<form method="post" action="{{route('deleteMultipleUsers')}}">
		{{ csrf_field() }}
		<br>
		<input class="btn btn-success" type="submit" name="submit" style="float: right;" value="Delete All Users"/>
		<br><br>
		<table class="table-bordered table-striped" width="50%">
			<thead>
				<tr>
					<th class="text-center">S.No.</th>
					<th class="text-center">User Name</th>
					<th class="text-center"> <input type="checkbox" id="checkAll"> Select All</th>
				</tr>
			</thead>
			<tbody>								
				@foreach ($list as $key => $value)					
					<tr>
						<td class="text-center">{{$key}}</td>
						<td class="text-center">{{$value->name}}</td>
						<td class="text-center"><input name='id[]' type="checkbox" id="checkItem" 
                         value="{{$value->id;}}"></td>
					</tr>
				@endforeach						
			</tbody>
		</table><br>
	</form>
</body>
</html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>		
<script language="javascript">
	$("#checkAll").click(function () {
		$('input:checkbox').not(this).prop('checked', this.checked);
	});
</script>

Merci d'avoir lu !!!

1.05 GEEK