Laravel find với điều kiện where

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

Hôm nay, chúng ta sẽ xem xét các cú pháp khác nhau cũng như một vài ví dụ cho nó

Nhớ. Các điều kiện này có thể được sử dụng trong bất kỳ loại truy vấn cơ sở dữ liệu nào - Chọn, Chèn, Cập nhật hoặc Xóa điều kiện cũng như trong các truy vấn phụ

Nếu bạn không cung cấp toán tử so sánh trong điều kiện, theo mặc định, toán tử = [bằng] được sử dụng

Hãy nói về điều kiện where[] [là điều kiện AND] và orWhere[]

Laravel nhiều điều kiện - [VÀ]

Theo mặc định, khi các điều kiện được xâu chuỗi với toán tử AND. Để tham gia thông qua toán tử OR, bạn sẽ phải sử dụng orWhere mà chúng ta sẽ nói 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 = "jdoe@example. com"

$user = User::where['name','John Doe']->where['email','jdoe@example.com']->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','jdoe@example.com']
				]]->first[];

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

Nếu bạn muốn sử dụng điều kiện OR trong truy vấn của mình thì sao?

Ghi chú. Truy vấn đầu tiên không thể bắt đầu bằng orWhere[]. Nó phải thường xuyên ở đâu[]

cú pháp

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

Ví dụ

$user = User::where['email','jdoe@example.com']->orWhere['email','johndoe@example.com']->first[];

Ví dụ trên có nghĩa là - Tìm cho tôi người dùng đầu tiên có email là 'jdoe@example. com' hoặc 'johndoe@example. com'

Nhóm Nhiều AND-OR-AND khi các điều kiện trong Dấu ngoặc đơ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. Ghi 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

Nhưng, trong Laravel, bạn sẽ sao chép điều đó như thế nào?

⇒ Sử dụng Bao đóng

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 đã truyề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

Hãy xem xét một ví dụ

Ví dụ

Tôi muốn tìm tất cả người dùng đang hoạt động và [ có email là johndoe@example. com hoặc có email là jdoe@example. com ] —> [Tôi đã sử dụng dấu ngoặc đơn để chứng minh rằng bất kể trường hợp nào xảy ra - người dùng nên hoạt động]

$users = User::where['active','1']->where[function[$query] {
			$query->where['email','jdoe@example.com']
						->orWhere['email','johndoe@example.com'];
}]->get[];

SQL

________số 8

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

Vì vậy, chúng tôi đã đề cập khá nhiều đến tất cả các loại mệnh đề where[] với một số ví dụ đơn giản. Hãy cho tôi biết liệu nó có giúp bạn hay không. Nếu bạn có bất kỳ nghi ngờ nào liên quan đến truy vấn của mình hoặc bạn không thể tạo bất kỳ truy vấn nào, hãy cho tôi biết trong phần nhận xét

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 thông 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','jdoe@example.com']->first[];
0

2] Cú pháp mảng

$user = User::where['name','John Doe']->where['email','jdoe@example.com']->first[];
1

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']->where['email','jdoe@example.com']->first[];
2

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','jdoe@example.com']->first[];
8 chứ không phải 
$user = User::where['name','John Doe']->where['email','jdoe@example.com']->first[];
9, bạn có thể sử dụng phương thức 
$user = User::where['name','John Doe']->where['email','jdoe@example.com']->first[];
00

cú pháp

$user = User::where['name','John Doe']->where['email','jdoe@example.com']->first[];
4

Ví dụ

$user = User::where['name','John Doe']->where['email','jdoe@example.com']->first[];
5

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

$user = User::where['name','John Doe']->where['email','jdoe@example.com']->first[];
6

Ở 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ụ

$user = User::where['name','John Doe']->where['email','jdoe@example.com']->first[];
7

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

Làm cách nào để tìm nạp dữ liệu trong Laravel với điều kiện ở đâu?

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

Làm thế nào để sử dụng find[] trong Laravel?

Ví dụ triển khai Laravel Find . Ví dụ, $student = Sinh viên. tất cả các []; . the find [] method in Laravel can be used by any user along with an array of primary keys, and it will return a set of matching records from the database. For example, $student = Students::all []; With the help of the above data, we can get the details of all the students.

Sự khác biệt giữa find và where trong Laravel là gì?

find trả về một thể hiện đối tượng của mô hình trong khi where sử dụng phương thức get trả về một bộ sưu tập . find trả về null nếu không có hàng nào được trả về trong khi sử dụng phương thức get luôn trả về một bộ sưu tập có thể trống khi không có kết quả nào được trả về từ cơ sở dữ liệu.

Làm cách nào để tạo chức năng tìm kiếm trong Laravel?

Làm cách nào để tìm kiếm chức năng trong laravel? . Cách tốt nhất để tìm kiếm một chức năng trong laravel có thể được hoàn thành trong vòng 2 bước đơn giản. Bước 1. Sửa đổi phương thức chỉ mục trong bộ điều khiển dự án . Bước 2. thêm biểu mẫu sẽ gửi yêu cầu tới bộ điều khiển trong chỉ mục .

Chủ Đề