Rumah > rangka kerja php > Laravel > pemadaman kelompok laravel5.2

pemadaman kelompok laravel5.2

王林
Lepaskan: 2023-05-20 16:26:40
asal
681 orang telah melayarinya

Laravel 5.2 ialah rangka kerja PHP moden yang disukai oleh ramai pembangun. Dalam Laravel, menambah, memadam, menyemak dan mengubah suai data adalah operasi yang sangat biasa, dan pemadaman kelompok tidak terkecuali. Artikel ini akan memperkenalkan cara memadam data secara berkumpulan menggunakan Laravel 5.2.

  1. Persediaan

Sebelum kita mula, kita perlu mencipta projek sampel untuk menunjukkan operasi pemadaman kelompok data. Masukkan arahan berikut dalam baris arahan:

laravel new batch-delete-example
Salin selepas log masuk

Kemudian masukkan direktori projek dan jalankan arahan berikut untuk mencipta jadual data bernama jawatan:

php artisan make:model Post -m
Salin selepas log masuk

Kemudian tambah kod berikut dalam model Post :

<?php

namespace App;

use IlluminateDatabaseEloquentModel;

class Post extends Model
{
    protected $fillable = ['title', 'content'];
}
Salin selepas log masuk

Isi beberapa sampel data dalam fail isian DatabaseSeeder.php:

<?php

use IlluminateDatabaseSeeder;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        factory(AppPost::class, 10)->create();
    }
}
Salin selepas log masuk

Akhirnya jalankan arahan berikut untuk mengisi data:

php artisan migrate --seed
Salin selepas log masuk
  1. Data padam kelompok

Dalam Laravel, kita boleh menggunakan kaedah padam yang disediakan oleh Eloquent untuk memadam rekod.

Jika kita mahu memadamkan satu rekod, kita boleh melakukan ini:

$post = Post::find(1);
$post->delete();
Salin selepas log masuk

Tetapi bagaimana jika kita mahu memadamkan berbilang rekod dalam kelompok? Pada masa ini kita boleh menggunakan kaedah whereIn, yang boleh menerima tatasusunan, menanyakan rekod yang memenuhi syarat dalam medan yang ditentukan dan memadamkannya.

Mari kita lihat sintaks asas dahulu:

Post::whereIn('id', $ids)->delete();
Salin selepas log masuk

Antaranya, $ids ialah tatasusunan yang mengandungi berbilang nilai id, mewakili nilai id rekod yang ingin kita padamkan.

Sebagai contoh, jika kita ingin memadamkan tiga rekod dengan ID 1, 3 dan 5, kita boleh melakukan ini:

$ids = [1, 3, 5];
Post::whereIn('id', $ids)->delete();
Salin selepas log masuk

Sudah tentu, kita juga boleh memadamkan rekod berdasarkan syarat lain. Sebagai contoh, jika kita ingin memadamkan semua rekod yang dibuat lebih awal daripada 2022, kita boleh melakukan ini:

Post::where('created_at', '<', '2022-01-01 00:00:00')->delete();
Salin selepas log masuk

Perlu diambil perhatian bahawa menggunakan kaedah whereIn akan ditukar secara automatik menjadi kenyataan padam, jadi ia tidak akan mendapatkan semula semua rekod yang memenuhi kriteria dan memadamnya secara individu Sebaliknya, rekod ini akan dipadamkan terus di peringkat pangkalan data, jadi gunakan dengan berhati-hati.

  1. Sahkan operasi pemadaman

Apabila kami menggunakan kaedah padam untuk memadam rekod, Laravel tidak menyediakan operasi pengesahan, yang bermaksud bahawa sebaik sahaja operasi pemadaman dilakukan , ia tidak boleh dibuat asal.

Jika kami ingin mengesahkan operasi pemadaman pengguna, kami boleh menambah tetingkap pop timbul pengesahan di bahagian hadapan atau kotak pengesahan di bahagian belakang untuk membolehkan pengguna mengesahkan sama ada mereka mahu memadamkan rekod.

Dalam artikel ini, kami menggunakan SweetAlert untuk membuat pop timbul pengesahan.

Mula-mula, jalankan arahan berikut dalam baris arahan untuk memasang SweetAlert:

npm install sweetalert2
Salin selepas log masuk

Kemudian tambahkan fail SweetAlert CSS dan JS dalam app.blade.php:

<!DOCTYPE html>
<html>
    <head>
        <title>Laravel</title>
        <link rel="stylesheet" type="text/css" href="{{ asset('css/app.css') }}">
        <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/sweetalert2@10.16.0/dist/sweetalert2.min.css">
        <script src="{{ asset('js/app.js') }}"></script>
        <script src="https://cdn.jsdelivr.net/npm/sweetalert2@10.16.0/dist/sweetalert2.min.js"></script>
    </head>
    <body>
        @yield('content')
    </body>
</html>
Salin selepas log masuk

Kemudian dalam Tambah kod berikut pada templat bilah:

<form method="post" action="{{ route('posts.destroy', $post->id) }}" style="display: inline-block;">
    @csrf
    @method('DELETE')
    <button type="submit" class="btn btn-danger btn-sm"
        onclick="event.preventDefault();
        Swal.fire({
            title: '确定删除吗?',
            icon: 'warning',
            showCancelButton: true,
            confirmButtonText: '确认删除',
            cancelButtonText: '取消'
        }).then((result) => {
            if (result.value) {
                this.parentElement.submit();
            }
        });"
    >删除</button>
</form>
Salin selepas log masuk

Di dalamnya, kami menentukan acara untuk mengklik butang padam, yang akan muncul tetingkap timbul pengesahan apabila pengguna mengklik butang padam. Jika pengguna mengklik butang sahkan, JavaScript menyerahkan borang dan memadam rekod yang sepadan.

Perlu diambil perhatian bahawa dalam bentuk operasi pemadaman, kami menambah @csrf dan @method('DELETE') Ini kerana operasi pemadaman dalam Laravel perlu diserahkan melalui kaedah HTTP DELETE. Penyemak imbas hanya menyokong kaedah GET dan POST, jadi anda perlu menggunakan input tersembunyi untuk menentukan kaedah permintaan.

Melainkan perlu, kita harus cuba mengelak daripada menggunakan operasi pemadaman pukal, kerana ia boleh menyebabkan kehilangan data yang tidak boleh diperbaiki. Jika anda perlu memadamkan satu rekod, anda boleh menggunakan kaedah padam yang disediakan oleh Eloquent, yang akan meminta pengguna mengesahkan pemadaman sebelum memadamkan rekod. Jika anda perlu memadamkan berbilang rekod, anda boleh menggunakan kaedah whereIn, tetapi berhati-hati untuk mengesahkan sebelum digunakan.

Atas ialah kandungan terperinci pemadaman kelompok laravel5.2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan