Trường hợp điều kiện với hai cột laravel

Eloquent ORM đi kèm với Laravel cung cấp cho bạn một cách dễ dàng để tương tác với cơ sở dữ liệu của bạn. Điều này đơn giản hóa tất cả các hoạt động CRUD [Tạo, đọc, cập nhật và xóa] và bất kỳ truy vấn cơ sở dữ liệu nào khác

Trong khi xây dựng truy vấn Laravel của bạn cho dù sử dụng Eloquent Query hay trình tạo DB Query, bạn thường phải sử dụng nhiều điều kiện where

Laravel cung cấp các phương thức xây dựng truy vấn và hùng biện đơn giản để truy vấn vào cơ sở dữ liệu. Phương thức where[] là mệnh đề cơ bản để truy vấn vào cơ sở dữ liệu. Chúng tôi gần như cần mệnh đề where trong mọi truy vấn

Xuyên suốt hướng dẫn, bạn sẽ học cách sử dụng nhiều điều kiện where trong Laravel eloquent và query builder. Bạn có thể sử dụng nhiều điều kiện để lọc nhiều cột vào cơ sở dữ liệu

Laravel bội số nơi có điều kiện - [VÀ]

Theo mặc định, nơi điều kiện được xâu chuỗi với toán tử AND . Để tham gia qua toán tử OR , bạn sẽ phải sử dụng hoặc Where mà chúng ta sẽ đề cập tiếp theo

1] Cú pháp đơn giản

...
->where['column','operator','value']
->where['column','operator','value']
...

Ví dụ

Hãy tìm người dùng có tên = "John Doe" và email = "[email được bảo vệ]"

$user = User::where['name','John Doe']->where['email','[email protected]']->first[];

2] Cú pháp mảng

....
->where[[
    ['column','operator','value'],
    ['column','operator','value'],
]]
...

Ví dụ

Hãy tạo lại ví dụ trên của chúng tôi ở dạng được nhóm

$user = User::where[[
    ['name','John Doe'],
    ['email','[email protected]']
]]->first[];

Laravel bội số nơi có điều kiện - [OR]

Trong trường hợp bạn muốn các mệnh đề của mình được nối với 

$user = User::where['name','John Doe']->where['email','[email protected]']->first[];
1 chứ không phải 
$user = User::where['name','John Doe']->where['email','[email protected]']->first[];
2, bạn có thể sử dụng phương pháp 
$user = User::where['name','John Doe']->where['email','[email protected]']->first[];
0

cú pháp

...
->where['column','operator','value']
->orWhere['column','operator','value']
...

Ví dụ

$user = User::where['email','[email protected]']->orWhere['email','[email protected]']->first[];

Ví dụ trên có nghĩa là - Tìm cho tôi người dùng đầu tiên có email là '[email được bảo vệ]' hoặc '[email được bảo vệ]'

Nhóm Nhiều AND-OR-AND khi có điều kiện

Nếu bạn muốn nhóm nhiều điều kiện AND, OR & AND trong truy vấn của mình thì sao?

Bạn không thể xâu chuỗi trực tiếp nhiều điều kiện AND-OR-AND lại với nhau. Hãy nhớ - Trong SQL, bạn sẽ phải sử dụng dấu ngoặc đơn nếu muốn nhóm các điều kiện như vậy

cú pháp

...
->where[function[$query] {
    $query->where['column','operator','value']
        ->orWhere['column','operator','value'];
}]
...

Ở trên, bạn có thể thấy rằng tôi đã chuyển một hàm đóng trong điều kiện where[] bên ngoài - Nó gói gọn các điều kiện bên trong trong dấu ngoặc đơn

Ví dụ

________số 8

Ghi chú. Bạn cũng có thể lồng nhiều bao đóng mặc dù hãy đảm bảo đặt các tên biến khác nhau cho mỗi bao đóng

Cảm ơn bạn đã đọc blog này

đọc thêm. Cách tối ưu hóa hiệu suất của Laravel

Nếu bạn muốn quản lý Máy chủ VPS / VM của mình mà không cần chạm vào dòng lệnh, hãy xem liên kết này. ServerAvatar cho phép bạn thiết lập nhanh các trang web WordPress hoặc PHP tùy chỉnh trên VPS / VM chỉ trong vài phút. Bạn có thể lưu trữ nhiều trang web trên một VPS / VM, định cấu hình chứng chỉ SSL và theo dõi tình trạng của máy chủ mà không cần chạm vào giao diện dòng lệnh

Nếu bạn có bất kỳ thắc mắc hoặc nghi ngờ nào về chủ đề này, vui lòng liên hệ với chúng tôi. Chúng tôi sẽ cố gắng liên lạc với bạn

Bạn đã bao giờ nghĩ về cách viết điều kiện where với hai cột [trường] trong Laravel Eloquent chưa?

Ví dụ: bạn có hai trường có tên sub_total và grand_total và bạn cần tìm tất cả các đơn hàng có sub_total giống như grand_total

Vì vậy, bạn có thể sử dụng

$user = User::where['name','John Doe']->where['email','[email protected]']->first[];
3 để có được kết quả mong muốn

Ví dụ 1____9Ví dụ 2

Ngoài ra, bạn có thể sử dụng toán tử so sánh với phương pháp này, giống như phương pháp

$user = User::where['name','John Doe']->where['email','[email protected]']->first[];
5

$user = User::where['name','John Doe']->where['email','[email protected]']->first[];
0Ví dụ 3

Phương thức

$user = User::where['name','John Doe']->where['email','[email protected]']->first[];
3 cũng có thể được truyền vào một mảng có nhiều điều kiện. Nhiều tham số sẽ được nối với toán tử
$user = User::where['name','John Doe']->where['email','[email protected]']->first[];
7

Làm cách nào để so sánh hai cột trong truy vấn Laravel?

Trong Laravel, bạn có thể dễ dàng so sánh hai cột bằng cách sử dụng whereColumn đơn giản trong trình tạo truy vấn . Nếu bạn cần lấy tất cả các bản ghi từ bảng có giá trị của hai cột bằng nhau thì bạn có thể dễ dàng lấy nó trong Laravel bằng cách sử dụng whereColumn. Có thể có rất nhiều điều kiện mà bạn có thể sử dụng phương pháp này với toán tử so sánh.

Tôi có thể sử dụng hai vị trí trong Laravel không?

bạn có thể dễ dàng thực hiện nhiều điều kiện where trong truy vấn với laravel 6, laravel 7, laravel 8 và laravel 9 . Gần như, chúng ta cần viết nhiều điều kiện where với laravel. như chúng ta biết, chúng ta có thể sử dụng mệnh đề where bằng cách sử dụng where[] trong laravel.

Làm cách nào để lấy dữ liệu giữa hai ngày bằng cách sử dụng truy vấn trong Laravel?

Cố gắng làm một cái gì đó như thế này. $date1 = Cacbon. hôm nay[]->toDateString[]; . hôm nay[]->toDateString[]; . tìm[1];

Điều kiện tìm nạp dữ liệu từ cơ sở dữ liệu trong Laravel ở đâu?

$categoryOne = DB. bảng ['bài đăng'] ->where ['category_id', 1]; . table['posts'] ->where['category_id', 2] ->union[$categoryOne] ->get[];

Chủ Đề