国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

laravel5.2批量刪除

王林
發(fā)布: 2023-05-20 16:26:40
原創(chuàng)
539人瀏覽過(guò)

laravel 5.2 是一款現(xiàn)代化的 php 框架,受到了眾多開發(fā)者的喜愛(ài)。在 laravel 中,數(shù)據(jù)的增刪查改是非常常見(jiàn)的操作,而批量刪除也不例外。本文將介紹使用 laravel 5.2 批量刪除數(shù)據(jù)的方法。

  1. 準(zhǔn)備工作

在開始之前,我們需要先創(chuàng)建一個(gè)示例項(xiàng)目來(lái)演示批量刪除數(shù)據(jù)的操作。在命令行中輸入以下命令:

laravel new batch-delete-example
登錄后復(fù)制

然后進(jìn)入項(xiàng)目目錄并運(yùn)行以下命令來(lái)創(chuàng)建一個(gè)名為 posts 的數(shù)據(jù)表:

php artisan make:model Post -m
登錄后復(fù)制

然后在 Post 模型中添加以下代碼:

<?php

namespace App;

use IlluminateDatabaseEloquentModel;

class Post extends Model
{
    protected $fillable = ['title', 'content'];
}
登錄后復(fù)制

在填充文件 DatabaseSeeder.php 中填充一些示例數(shù)據(jù):

<?php

use IlluminateDatabaseSeeder;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        factory(AppPost::class, 10)->create();
    }
}
登錄后復(fù)制

最后運(yùn)行以下命令來(lái)填充數(shù)據(jù):

php artisan migrate --seed
登錄后復(fù)制
  1. 批量刪除數(shù)據(jù)

在 Laravel 中,我們可以使用 Eloquent 提供的 delete 方法來(lái)刪除記錄。

如果我們想要?jiǎng)h除單個(gè)記錄,可以這樣做:

$post = Post::find(1);
$post->delete();
登錄后復(fù)制

但是如果我們要批量刪除多條記錄怎么辦呢?這時(shí)候我們可以使用 whereIn 方法,這個(gè)方法可以接收一個(gè)數(shù)組,在指定字段內(nèi)查詢符合條件的記錄并將其刪除。

我們先來(lái)看一下基本語(yǔ)法:

Post::whereIn('id', $ids)->delete();
登錄后復(fù)制

其中,$ids 是一個(gè)包含多個(gè) id 值的數(shù)組,代表了我們要?jiǎng)h除的記錄的 id 值。

例如,如果我們要?jiǎng)h除 id 為 1, 3, 5 的三條記錄,可以這樣做:

$ids = [1, 3, 5];
Post::whereIn('id', $ids)->delete();
登錄后復(fù)制

當(dāng)然,我們也可以根據(jù)其他條件來(lái)刪除記錄。例如,如果我們要?jiǎng)h除所有創(chuàng)建時(shí)間早于 2022 年的記錄,可以這樣做:

Post::where('created_at', '<', '2022-01-01 00:00:00')->delete();
登錄后復(fù)制

需要注意的是,使用 whereIn 方法會(huì)自動(dòng)轉(zhuǎn)換為一個(gè) delete 語(yǔ)句,因此它并不會(huì)檢索所有符合條件的記錄并分別刪除它們,而是會(huì)在數(shù)據(jù)庫(kù)層面直接刪除這些記錄,因此要慎重使用。

  1. 確認(rèn)刪除操作

當(dāng)我們使用 delete 方法刪除記錄時(shí),Laravel 并沒(méi)有提供確認(rèn)操作,這意味著一旦執(zhí)行刪除操作就無(wú)法撤銷。

如果我們想要確認(rèn)用戶的刪除操作,可以在前端添加一個(gè)確認(rèn)彈窗或者在后端添加一個(gè)確認(rèn)框來(lái)讓用戶確認(rèn)是否要?jiǎng)h除記錄。

在本文中,我們使用 SweetAlert 來(lái)創(chuàng)建一個(gè)確認(rèn)彈窗。

首先,在命令行中運(yùn)行以下命令來(lái)安裝 SweetAlert:

npm install sweetalert2
登錄后復(fù)制

然后在 app.blade.php 中添加 SweetAlert CSS 和 JS 文件:

<!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>
登錄后復(fù)制

然后在 blade 模板中添加以下代碼:

<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: '確認(rèn)刪除',
            cancelButtonText: '取消'
        }).then((result) => {
            if (result.value) {
                this.parentElement.submit();
            }
        });"
    >刪除</button>
</form>
登錄后復(fù)制

在其中,我們定義了一個(gè)點(diǎn)擊刪除按鈕的事件,它會(huì)在用戶點(diǎn)擊刪除按鈕時(shí)彈出一個(gè)確認(rèn)彈窗。如果用戶點(diǎn)擊確認(rèn)按鈕,JavasScript 會(huì)提交表單并刪除相應(yīng)記錄。

需要注意的是,在刪除操作的 form 表單中,我們加上了 @csrf 和 @method('DELETE'),這是因?yàn)?Laravel 中的刪除操作需要通過(guò) HTTP DELETE 方法來(lái)提交,而瀏覽器只支持 GET 和 POST 方法,因此需要使用 hidden input 來(lái)指定請(qǐng)求方法。

除非必要,我們應(yīng)該盡量避免使用批量刪除操作,因?yàn)樗赡軙?huì)導(dǎo)致數(shù)據(jù)的不可挽回的丟失。如果需要?jiǎng)h除單個(gè)記錄,可以使用 Eloquent 提供的 delete 方法,它會(huì)在刪除記錄前詢問(wèn)用戶是否確認(rèn)刪除。如果需要?jiǎng)h除多個(gè)記錄,可以使用 whereIn 方法,但要注意使用前應(yīng)仔細(xì)確認(rèn)。

以上就是laravel5.2批量刪除的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件
最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件

每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。

下載
來(lái)源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問(wèn)題
開源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)