Làm thế nào để laravel không có phạm vi toàn cầu với các ví dụ

Để sử dụng Laravel mà không có global scope, bạn có thể sử dụng phương thức `withoutGlobalScope` trên Eloquent model. Đây là một ví dụ

$users = User::withoutGlobalScope('active')->get();

Thao tác này sẽ tìm nạp tất cả người dùng từ cơ sở dữ liệu, bỏ qua mọi phạm vi toàn cầu đã được xác định trên mô hình `Người dùng`. Bạn cũng có thể chuyển nhiều phạm vi cho phương thức `khôngGlobalScope`, được phân tách bằng dấu phẩy, để bỏ qua nhiều phạm vi cùng một lúc

Một cách khác để sử dụng Laravel mà không cần phạm vi toàn cầu là xác định một phiên bản trình tạo truy vấn mới không áp dụng phạm vi toàn cầu. Đây là một ví dụ

$users = (new User)->newQueryWithoutScope('active')->get();

Thao tác này tạo một phiên bản mới của mô hình `Người dùng`, sau đó sử dụng phương thức `newQueryWithoutScope` để tạo một phiên bản trình tạo truy vấn mới không áp dụng phạm vi toàn cầu `hoạt động`. Sau đó, bạn có thể sử dụng phiên bản này để xây dựng và thực hiện các truy vấn của mình khi cần

Phạm vi toàn cầu có thể hữu ích trong một số trường hợp, nhưng trong những trường hợp khác, bạn có thể muốn bỏ qua chúng và tìm nạp dữ liệu mà không áp dụng phạm vi toàn cầu. Các phương pháp được mô tả ở trên cung cấp một cách để làm điều này trong Laravel

Trong bài viết dưới đây, chúng tôi gửi đến bạn một số giải pháp cho câu hỏi Làm thế nào để laravel không có phạm vi toàn cầu với các ví dụ . Hi vọng đây sẽ là giải pháp mà bạn đang tìm kiếm, tiết kiệm thời gian cho bạn. thực thi.

Làm thế nào để laravel không có phạm vi toàn cầu với các ví dụ
public function boot()
    {
        parent::boot();

        Route::bind('project', function($id) {
            return \App\Project::withoutGlobalScopes()->findOrFail($id);
        });
    }

Các instance khác xoay quanh chủ đề How to laravel without global scope với các Ví dụ được nhiều người quan tâm

Làm cách nào để thêm phạm vi toàn cầu vào mô hình Laravel?

Phương pháp phạm vi toàn cầu nói gì, bạn có thể thêm phạm vi toàn cầu vào mô hình của mình theo nhiều cách. Nhưng trong mọi trường hợp, nó sẽ thêm một mục mới vào thuộc tính tĩnh $globalScopes dưới dạng cặp khóa-giá trị, trong đó khóa là tên lớp của mô hình và giá trị là tên của phạm vi toàn cầu. Laravel áp dụng phạm vi toàn cục trong phương thức newQuery

Làm cách nào để tránh phạm vi toàn cầu cho một truy vấn nhất định?

lớp LocaleScope thực hiện Phạm vi { chức năng công khai áp dụng (Builder $builder, Model $model) { $locale = app (Locale. lớp);

Làm thế nào để bạn xử lý các thao tác xóa mềm trong Laravel?

ấu trùng 4. 2 đã giới thiệu một cách mới để xử lý xóa mềm bằng cách sử dụng các đặc điểm và macro trình tạo truy vấn được gói gọn dưới dạng một tính năng mà nhiều người đã yêu cầu trong một thời gian rất dài – Phạm vi toàn cầu. Điều này có thể rất hữu ích cho mọi người, tuy nhiên các tài liệu không hùng hồn lắm trong trường hợp này