Rate this post

Trong phần này, chúng ta sẽ sử dụng Laravel để xóa nhiều hơn một record bằng cách sử dụng checkbox. Nếu chúng ta muốn phát triển một ứng dụng web khổng lồ hoặc một ứng dụng thương mại điện tử, chúng ta nên cung cấp tính năng xóa nhiều hơn một record.

Các bài viết liên quan:

Bây giờ chúng ta sẽ mô tả việc sử dụng checkbox để xóa nhiều record trong các phiên bản khác nhau của ứng dụng laravel như 5, 6, 7 và 8. Ở đây chúng ta có thể xóa một record hoặc nhiều record. Trong ví dụ của chúng tôi, chúng tôi sẽ tạo một bảng có tên “products”, bảng này sẽ chứa các cột create_at, chi tiết, các cột updated_at, tên và id. Chúng tôi cũng sẽ thêm các record giả bằng cách sử dụng truy vấn mysql. Để xóa tất cả các record bằng cách chọn tất cả các checkbox, chúng tôi sẽ sử dụng jquery.

Xem thêm Xử lý checkbox trong selenium webdriver

Giới thiệu về xóa nhiều record trong Laravel

Trong Laravel, việc xóa nhiều record cùng một lúc từ cơ sở dữ liệu có thể được thực hiện bằng cách sử dụng các checkbox để chọn các record cần xóa. Dưới đây là một giới thiệu về cách xóa nhiều record trong Laravel:

  1. Thiết kế giao diện với checkbox:
    • Trong giao diện của bạn, tạo một danh sách các record cần xóa và đi kèm với mỗi record là một checkbox.
    • Chọn một tên duy nhất cho các checkbox để có thể phân biệt và xác định được các record được chọn.
  2. Xử lý submit form và lấy danh sách record được chọn:
    • Khi người dùng nhấn nút “Xóa” hoặc “Submit”, gửi một yêu cầu POST đến một route hoặc một phương thức trong Laravel Controller.
    • Trong phương thức xử lý yêu cầu, sử dụng request() để lấy danh sách các record được chọn thông qua các tên checkbox duy nhất đã định nghĩa trong giao diện.
  3. Xóa các record được chọn từ cơ sở dữ liệu:
    • Sử dụng phương thức destroy() hoặc delete() trên mô hình tương ứng để xóa các record được chọn.
    • Truyền danh sách các khóa chính của các record cần xóa vào phương thức destroy() hoặc delete().

Ví dụ, để xóa các bài viết được chọn trong bảng “posts”, bạn có thể thực hiện như sau trong Laravel Controller:

public function deleteSelectedPosts(Request $request)
{
    $selectedPosts = $request->input('selected_posts');

    Post::whereIn('id', $selectedPosts)->delete();

    // Thông báo xóa thành công hoặc thực hiện các tác vụ khác

    return redirect()->back()->with('success', 'Các bài viết đã được xóa thành công.');
}

Trên đây là một phần giới thiệu về cách xóa nhiều record trong Laravel. Tuy nhiên, hãy chắc chắn kiểm tra và xử lý các điều kiện liên quan như quyền truy cập và xác thực trước khi thực hiện xóa record để đảm bảo tính bảo mật và đáng tin cậy cho ứng dụng của bạn.

Xem thêm Xóa tất cả các record khỏi bảng trong Laravel Eloquent

Cách thiết kế giao diện với checkbox để chọn nhiều record

Để thiết kế giao diện với checkbox để cho phép chọn nhiều record để xóa trong Laravel, bạn có thể sử dụng HTML và Bootstrap để tạo danh sách các record và checkbox tương ứng. Dưới đây là một cách thực hiện:

  1. Trong giao diện của bạn, tạo một form bao bọc toàn bộ danh sách record và checkbox:
<form method="POST" action="{{ route('delete.selected') }}">
    @csrf
    <ul>
        <!-- Hiển thị danh sách record -->
        @foreach ($records as $record)
            <li>
                <!-- Checkbox cho mỗi record -->
                <input type="checkbox" name="selected_records[]" value="{{ $record->id }}">
                {{ $record->name }}
            </li>
        @endforeach
    </ul>
    <button type="submit">Xóa</button>
</form>
  1. Trong phương thức xử lý yêu cầu của Laravel Controller, bạn có thể lấy danh sách các record được chọn thông qua request():
public function deleteSelectedRecords(Request $request)
{
    $selectedRecords = $request->input('selected_records');

    // Xử lý xóa các record được chọn

    // Redirect hoặc trả về thông báo thành công
}

Trên đây là một ví dụ cơ bản về cách thiết kế giao diện với checkbox để cho phép chọn nhiều record để xóa trong Laravel. Bạn có thể tùy chỉnh và trang trí giao diện theo ý muốn sử dụng CSS và Bootstrap để tạo ra trải nghiệm người dùng tốt hơn.

Xem thêm Master Boot Record (MBR) trong hệ điều hành

Xóa nhiều record trong Laravel Controller

Trong Laravel Controller, để xóa nhiều record từ cơ sở dữ liệu, bạn có thể sử dụng phương thức destroy() hoặc delete() trên mô hình tương ứng. Dưới đây là cách thực hiện:

  1. Xử lý yêu cầu xóa nhiều record: Trong phương thức xử lý yêu cầu của Laravel Controller, bạn có thể lấy danh sách các record được chọn từ request() và thực hiện xử lý xóa.
public function deleteSelectedRecords(Request $request)
{
    $selectedRecords = $request->input('selected_records');

    // Xử lý xóa các record được chọn

    // Redirect hoặc trả về thông báo thành công
}
  1. Xóa các record được chọn từ cơ sở dữ liệu: Sử dụng phương thức destroy() hoặc delete() trên mô hình tương ứng để xóa các record được chọn. Sử dụng phương thức whereIn() để chỉ định danh sách khóa chính của các record cần xóa.
public function deleteSelectedRecords(Request $request)
{
    $selectedRecords = $request->input('selected_records');

    // Xóa các record được chọn từ cơ sở dữ liệu
    ModelName::whereIn('id', $selectedRecords)->delete();

    // Redirect hoặc trả về thông báo thành công
}

Trong ví dụ trên, ModelName là tên của mô hình tương ứng với bảng chứa các record cần xóa. selected_records là tên của trường trong form chứa danh sách các record được chọn.

Sau khi xóa các record, bạn có thể chuyển hướng người dùng đến trang khác hoặc trả về thông báo thành công thông qua redirect() hoặc response().

Hãy chắc chắn kiểm tra và xử lý các điều kiện liên quan như quyền truy cập và xác thực trước khi thực hiện xóa record để đảm bảo tính bảo mật và đáng tin cậy cho ứng dụng của bạn.

Xem thêm Công cụ SEO checklist – checkbox mới nhất 2021

Ví dụ về Xóa nhiều record bằng checkbox

Bước 1:

Trong bước đầu tiên, chúng ta sẽ tạo một bảng sản phẩm với các record giả. Đối với điều này, chúng tôi sẽ tạo một bảng “sản phẩm”. Sau đó, chúng tôi sẽ tạo các record giả bằng cách chạy truy vấn mysql. Chúng ta có thể sử dụng chuyển đổi để tạo bảng sản phẩm, và sau đó chúng ta sẽ sử dụng seeder để tạo một số record giả. Trong ví dụ sau, chúng tôi sẽ chỉ sử dụng truy vấn sql.

Truy vấn record ảo:

Bước 2:

Trong bước này, chúng ta sẽ Tạo bộ định tuyến mới. Đối với điều này, chúng tôi sẽ thêm các bộ định tuyến dạng cây. Bộ định tuyến đầu tiên sẽ được tạo để hiển thị dữ liệu. Bộ định tuyến thứ hai sẽ được tạo để xóa yêu cầu. Bộ định tuyến thứ ba sẽ được tạo để loại bỏ tất cả dữ liệu đã chọn. Vì vậy, chúng tôi sẽ sử dụng ứng dụng laravel của mình và thêm ba bộ định tuyến mới này.

route / web.php

Bước 3:

Trong bước này, chúng tôi sẽ Thêm bộ điều khiển sản phẩm. Đối với điều này, chúng tôi sẽ tạo một tệp ProductController mới, được sử dụng để xử lý yêu cầu được tạo bởi ba bộ định tuyến trên. Chúng tôi sẽ sử dụng bộ điều khiển này để tạo ba phương thức, tức là, deleteAll (), hủy (), chỉ mục (). Các phương pháp này được sử dụng để xử lý yêu cầu của bộ định tuyến. Bây giờ chúng ta sẽ tạo một bộ điều khiển mới và sau đó đặt đoạn mã sau:

app / Http / Controllers / ProductController.php

Bước 4:

Trong bước này, chúng tôi sẽ Thêm các tệp phiến. Đối với điều này, chúng tôi sẽ tạo tệp product.blade.php. Đối với chức năng xóa tất cả và xóa, chúng ta sẽ viết đoạn mã jquery bên dưới. Bây giờ chúng ta sẽ tạo tệp product.blade.php và sau đó đặt đoạn mã sau.

resource / views / products.blade.php

Bây giờ mã ở trên của chúng tôi đã sẵn sàng để chạy. Để chạy đoạn mã trên một cách nhanh chóng, chúng ta sẽ sử dụng lệnh sau:

php artisan serve  

Bây giờ chúng ta có thể sử dụng trình duyệt của mình để mở url bên dưới:

http: // localhost: 8000 / myproducts

Sau khi mở nó, chúng ta có thể thấy kết quả sau:

Xem thêm Lịch sử của Laravel

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now