Trình tạo truy vấn cơ sở dữ liệu cung cấp giao diện thuận tiện, thông thạo để tạo và chạy các truy vấn cơ sở dữ liệu. Nó có thể được sử dụng để thực hiện hầu hết các hoạt động cơ sở dữ liệu trong ứng dụng của bạn và hoạt động trên tất cả các hệ thống cơ sở dữ liệu được hỗ trợ
Ghi chú. Trình tạo truy vấn Laravel sử dụng liên kết tham số PDO để bảo vệ ứng dụng của bạn khỏi các cuộc tấn công SQL injection. Không cần xóa các chuỗi được truyền dưới dạng ràng buộc
Truy xuất kết quả
Lấy tất cả các hàng từ một bảng
Để bắt đầu một truy vấn trôi chảy, hãy sử dụng phương pháp
$titles = DB::table['roles']->pluck['title'];
foreach [$titles as $title] {
4 trên mặt tiền $titles = DB::table['roles']->pluck['title'];
foreach [$titles as $title] {
5. Phương thức $titles = DB::table['roles']->pluck['title'];
foreach [$titles as $title] {
4 trả về một phiên bản trình tạo truy vấn trôi chảy cho bảng đã cho, cho phép bạn xâu chuỗi nhiều ràng buộc hơn vào truy vấn và cuối cùng nhận được kết quả. Trong ví dụ này, hãy chỉ $titles = DB::table['roles']->pluck['title'];
foreach [$titles as $title] {
7 tất cả các bản ghi từ một bảngnamespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class UserController extends Controller
* Show a list of all of the application's users.
$users = DB::table['users']->get[];
return view['user.index', ['users' => $users]];
Giống như các truy vấn thô, phương thức
$titles = DB::table['roles']->pluck['title'];
foreach [$titles as $title] {
7 trả về một $titles = DB::table['roles']->pluck['title'];
foreach [$titles as $title] {
9 kết quả trong đó mỗi kết quả là một thể hiện của đối tượng PHP $roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
0. Bạn có thể truy cập giá trị của từng cột bằng cách truy cập cột dưới dạng thuộc tính của đối tượngTruy xuất một hàng/cột từ một bảng
Nếu bạn chỉ cần truy xuất một hàng từ bảng cơ sở dữ liệu, bạn có thể sử dụng phương thức
$roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
1. Phương thức này sẽ trả về một đối tượng $roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
0$user = DB::table['users']->where['name', 'John']->first[];
Nếu bạn thậm chí không cần toàn bộ hàng, bạn có thể trích xuất một giá trị từ bản ghi bằng phương thức
$roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
3. Phương thức này sẽ trả về giá trị của cột trực tiếp$email = DB::table['users']->where['name', 'John']->value['email'];
Chunking kết quả từ một bảng
Nếu bạn cần làm việc với hàng nghìn bản ghi cơ sở dữ liệu, hãy cân nhắc sử dụng phương pháp
$roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
4. Phương pháp này truy xuất một "khối" kết quả nhỏ tại một thời điểm và đưa từng đoạn đó vào một $roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
5 để xử lý. Phương pháp này rất hữu ích để viết các lệnh Artisan xử lý hàng nghìn bản ghi. Ví dụ: hãy làm việc với toàn bộ bảng $roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
6 theo khối 100 bản ghi cùng một lúcDB::table['users']->orderBy['id']->chunk[100, function[$users] {
Bạn có thể ngừng xử lý các khối tiếp theo bằng cách trả lại
$roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
7 từ $roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
5DB::table['users']->orderBy['id']->chunk[100, function[$users] {
Truy xuất danh sách các giá trị cột
Nếu bạn muốn truy xuất một mảng chứa các giá trị của một cột, bạn có thể sử dụng phương thức
$roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
9. Trong ví dụ này, chúng tôi sẽ truy xuất một mảng các chức danh vai trò$titles = DB::table['roles']->pluck['title'];
foreach [$titles as $title] {
Bạn cũng có thể chỉ định cột khóa tùy chỉnh cho mảng được trả về
$roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
uẩn
Trình tạo truy vấn cũng cung cấp nhiều phương pháp tổng hợp, chẳng hạn như
$users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
0, $users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
1, $users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
2, $users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
3 và $users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
4. Bạn có thể gọi bất kỳ phương thức nào sau khi xây dựng truy vấn của mình$users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
Tất nhiên, bạn có thể kết hợp các phương thức này với các mệnh đề khác để xây dựng truy vấn của mình
$price = DB::table['orders']
chọn
Chỉ định một mệnh đề chọn
Tất nhiên, không phải lúc nào bạn cũng muốn chọn tất cả các cột từ bảng cơ sở dữ liệu. Sử dụng phương thức
$users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
5, bạn có thể chỉ định mệnh đề $users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
5 tùy chỉnh cho truy vấn$users = DB::table['users']->select['name', 'email as user_email']->get[];
Phương thức
$users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
7 cho phép bạn buộc truy vấn trả về các kết quả khác biệt$user = DB::table['users']->where['name', 'John']->first[];
0Nếu bạn đã có một phiên bản trình tạo truy vấn và bạn muốn thêm một cột vào mệnh đề chọn hiện có của nó, bạn có thể sử dụng phương thức
$users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
8$user = DB::table['users']->where['name', 'John']->first[];
1biểu thức thô
Đôi khi bạn có thể cần sử dụng biểu thức thô trong truy vấn. Các biểu thức này sẽ được đưa vào truy vấn dưới dạng chuỗi, vì vậy hãy cẩn thận để không tạo bất kỳ điểm chèn SQL nào. Để tạo một biểu thức thô, bạn có thể sử dụng phương thức
$users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
9$user = DB::table['users']->where['name', 'John']->first[];
2tham gia
Tuyên bố tham gia bên trong
Trình tạo truy vấn cũng có thể được sử dụng để viết các câu lệnh nối. Để thực hiện "nối bên trong" SQL cơ bản, bạn có thể sử dụng phương thức
$price = DB::table['orders']
0 trên phiên bản trình tạo truy vấn. Đối số đầu tiên được truyền cho phương thức $price = DB::table['orders']
0 là tên của bảng mà bạn cần nối, trong khi các đối số còn lại chỉ định các ràng buộc cột cho phép nối. Tất nhiên, như bạn có thể thấy, bạn có thể tham gia nhiều bảng trong một truy vấn$user = DB::table['users']->where['name', 'John']->first[];
3Tuyên bố tham gia trái
Nếu bạn muốn thực hiện "nối bên trái" thay vì "nối bên trong", hãy sử dụng phương thức
$price = DB::table['orders']
2. Phương thức $price = DB::table['orders']
2 có cùng chữ ký với phương thức $price = DB::table['orders']
0$user = DB::table['users']->where['name', 'John']->first[];
4Tuyên bố tham gia chéo
Để thực hiện "nối chéo", hãy sử dụng phương pháp
$price = DB::table['orders']
5 với tên của bảng bạn muốn nối chéo với. Tham gia chéo tạo ra một sản phẩm cartesian giữa bảng đầu tiên và bảng đã tham gia$user = DB::table['users']->where['name', 'John']->first[];
5Tuyên bố tham gia nâng cao
Bạn cũng có thể chỉ định các mệnh đề nối nâng cao hơn. Để bắt đầu, hãy chuyển một
$roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
5 làm đối số thứ hai vào phương thức $price = DB::table['orders']
0. $roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
5 sẽ nhận được một đối tượng $price = DB::table['orders']
9 cho phép bạn chỉ định các ràng buộc đối với mệnh đề $price = DB::table['orders']
0$user = DB::table['users']->where['name', 'John']->first[];
6Nếu bạn muốn sử dụng mệnh đề kiểu "where" trong phép nối của mình, bạn có thể sử dụng các phương thức
$users = DB::table['users']->select['name', 'email as user_email']->get[];
1 và $users = DB::table['users']->select['name', 'email as user_email']->get[];
2 trên phép nối. Thay vì so sánh hai cột, các phương thức này sẽ so sánh cột với một giá trị$user = DB::table['users']->where['name', 'John']->first[];
7đoàn thể
Trình tạo truy vấn cũng cung cấp một cách nhanh chóng để "kết hợp" hai truy vấn với nhau. Ví dụ: bạn có thể tạo một truy vấn ban đầu, sau đó sử dụng phương thức
$users = DB::table['users']->select['name', 'email as user_email']->get[];
3 để kết hợp truy vấn đó với truy vấn thứ hai$user = DB::table['users']->where['name', 'John']->first[];
8Phương thức
$users = DB::table['users']->select['name', 'email as user_email']->get[];
4 cũng có sẵn và có chữ ký phương thức giống như phương thức $users = DB::table['users']->select['name', 'email as user_email']->get[];
3mệnh đề ở đâu
Mệnh đề Where đơn giản
Để thêm mệnh đề
$users = DB::table['users']->select['name', 'email as user_email']->get[];
1 vào truy vấn, hãy sử dụng phương thức $users = DB::table['users']->select['name', 'email as user_email']->get[];
1 trên phiên bản trình tạo truy vấn. Cuộc gọi cơ bản nhất tới $users = DB::table['users']->select['name', 'email as user_email']->get[];
1 yêu cầu ba đối số. Đối số đầu tiên là tên của cột. Đối số thứ hai là một toán tử, có thể là bất kỳ toán tử nào được cơ sở dữ liệu hỗ trợ. Đối số thứ ba là giá trị để đánh giá đối với cộtVí dụ: đây là truy vấn xác minh giá trị của cột "phiếu bầu" bằng 100
$user = DB::table['users']->where['name', 'John']->first[];
9Để thuận tiện, nếu bạn chỉ muốn xác minh rằng một cột bằng với một giá trị nhất định, bạn có thể chuyển trực tiếp giá trị đó làm đối số thứ hai cho phương thức
$users = DB::table['users']->select['name', 'email as user_email']->get[];
1$email = DB::table['users']->where['name', 'John']->value['email'];
0Tất nhiên, bạn có thể sử dụng nhiều toán tử khác khi viết mệnh đề
$users = DB::table['users']->select['name', 'email as user_email']->get[];
1$email = DB::table['users']->where['name', 'John']->value['email'];
1Bạn cũng có thể chuyển một loạt các điều kiện cho hàm
$users = DB::table['users']->select['name', 'email as user_email']->get[];
1$email = DB::table['users']->where['name', 'John']->value['email'];
2Hoặc Tuyên bố
Bạn có thể xâu chuỗi các ràng buộc where lại với nhau, cũng như thêm mệnh đề
$user = DB::table['users']->where['name', 'John']->first[];
02 vào truy vấn. Phương thức $users = DB::table['users']->select['name', 'email as user_email']->get[];
2 chấp nhận các đối số giống như phương thức $users = DB::table['users']->select['name', 'email as user_email']->get[];
1$email = DB::table['users']->where['name', 'John']->value['email'];
3Các mệnh đề bổ sung
ở đâu giữa
Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
05 xác minh rằng giá trị của cột nằm giữa hai giá trị$email = DB::table['users']->where['name', 'John']->value['email'];
4whereNotBetween
Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
06 xác minh rằng giá trị của cột nằm ngoài hai giá trị$email = DB::table['users']->where['name', 'John']->value['email'];
5ở đâu / không ở đâu
Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
07 xác minh rằng giá trị của một cột đã cho được chứa trong mảng đã cho$email = DB::table['users']->where['name', 'John']->value['email'];
3Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
08 xác minh rằng giá trị của cột đã cho không có trong mảng đã cho$email = DB::table['users']->where['name', 'John']->value['email'];
7whereNull / whereNotNull
Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
09 xác minh rằng giá trị của cột đã cho là $user = DB::table['users']->where['name', 'John']->first[];
10$email = DB::table['users']->where['name', 'John']->value['email'];
8Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
11 xác minh rằng giá trị của cột không phải là $user = DB::table['users']->where['name', 'John']->first[];
10$email = DB::table['users']->where['name', 'John']->value['email'];
9ở đâuCột
Phương pháp
$user = DB::table['users']->where['name', 'John']->first[];
13 có thể được sử dụng để xác minh rằng hai cột bằng nhauDB::table['users']->orderBy['id']->chunk[100, function[$users] {
0Bạn cũng có thể chuyển toán tử so sánh cho phương thức
DB::table['users']->orderBy['id']->chunk[100, function[$users] {
1Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
13 cũng có thể được truyền vào một mảng gồm nhiều điều kiện. Các điều kiện này sẽ được nối bằng cách sử dụng toán tử $user = DB::table['users']->where['name', 'John']->first[];
15DB::table['users']->orderBy['id']->chunk[100, function[$users] {
2Mệnh đề nâng cao
Nhóm thông số
Đôi khi, bạn có thể cần tạo các mệnh đề where nâng cao hơn, chẳng hạn như "nơi tồn tại" hoặc các nhóm tham số lồng nhau. Trình tạo truy vấn của Laravel cũng có thể xử lý những điều này. Để bắt đầu, hãy xem một ví dụ về ràng buộc nhóm trong ngoặc đơn
DB::table['users']->orderBy['id']->chunk[100, function[$users] {
3Như bạn có thể thấy, việc chuyển một
$roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
5 vào phương thức $users = DB::table['users']->select['name', 'email as user_email']->get[];
2 sẽ hướng dẫn trình tạo truy vấn bắt đầu một nhóm ràng buộc. $roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
5 sẽ nhận được một phiên bản trình tạo truy vấn mà bạn có thể sử dụng để đặt các ràng buộc nên có trong nhóm dấu ngoặc đơn. Ví dụ trên sẽ tạo ra SQL sauDB::table['users']->orderBy['id']->chunk[100, function[$users] {
4Tồn tại báo cáo
Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
19 cho phép bạn viết $user = DB::table['users']->where['name', 'John']->first[];
20 mệnh đề SQL. Phương thức $user = DB::table['users']->where['name', 'John']->first[];
19 chấp nhận đối số $roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
5, đối số này sẽ nhận một phiên bản trình tạo truy vấn cho phép bạn xác định truy vấn sẽ được đặt bên trong mệnh đề "tồn tại"DB::table['users']->orderBy['id']->chunk[100, function[$users] {
5Truy vấn trên sẽ tạo ra SQL sau
DB::table['users']->orderBy['id']->chunk[100, function[$users] {
6Mệnh đề JSON ở đâu
Laravel hỗ trợ truy vấn các loại cột JSON trên cơ sở dữ liệu cung cấp hỗ trợ cho các loại cột JSON. Hiện tại, điều này bao gồm MySQL 5. 7 và Postgres. Để truy vấn một cột JSON, hãy sử dụng toán tử
$user = DB::table['users']->where['name', 'John']->first[];
23DB::table['users']->orderBy['id']->chunk[100, function[$users] {
7Đặt hàng, nhóm, giới hạn và bù đắp
đặt bởi
Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
24 cho phép bạn sắp xếp kết quả của truy vấn theo một cột nhất định. Đối số đầu tiên của phương thức $user = DB::table['users']->where['name', 'John']->first[];
24 phải là cột mà bạn muốn sắp xếp theo, trong khi đối số thứ hai kiểm soát hướng sắp xếp và có thể là $user = DB::table['users']->where['name', 'John']->first[];
26 hoặc $user = DB::table['users']->where['name', 'John']->first[];
27$email = DB::table['users']->where['name', 'John']->value['email'];
3theo thứ tự ngẫu nhiên
Phương pháp
$user = DB::table['users']->where['name', 'John']->first[];
28 có thể được sử dụng để sắp xếp các kết quả truy vấn một cách ngẫu nhiên. Ví dụ: bạn có thể sử dụng phương pháp này để tìm nạp một người dùng ngẫu nhiênDB::table['users']->orderBy['id']->chunk[100, function[$users] {
9nhómBy / có / cóRaw
Các phương pháp
$user = DB::table['users']->where['name', 'John']->first[];
29 và $user = DB::table['users']->where['name', 'John']->first[];
30 có thể được sử dụng để nhóm các kết quả truy vấn. Chữ ký của phương thức $user = DB::table['users']->where['name', 'John']->first[];
30 tương tự như chữ ký của phương thức $users = DB::table['users']->select['name', 'email as user_email']->get[];
1DB::table['users']->orderBy['id']->chunk[100, function[$users] {
0Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
33 có thể được sử dụng để đặt một chuỗi thô làm giá trị của mệnh đề $user = DB::table['users']->where['name', 'John']->first[];
30. Ví dụ: chúng tôi có thể tìm thấy tất cả các bộ phận có doanh thu lớn hơn $2.500DB::table['users']->orderBy['id']->chunk[100, function[$users] {
1bỏ qua / lấy
Để giới hạn số kết quả trả về từ truy vấn hoặc bỏ qua một số kết quả nhất định trong truy vấn [
$user = DB::table['users']->where['name', 'John']->first[];
35], bạn có thể sử dụng các phương thức $user = DB::table['users']->where['name', 'John']->first[];
36 và $user = DB::table['users']->where['name', 'John']->first[];
37DB::table['users']->orderBy['id']->chunk[100, function[$users] {
2Câu điều kiện
Đôi khi bạn có thể muốn các câu lệnh chỉ áp dụng cho một truy vấn khi điều gì đó khác là đúng. Chẳng hạn, bạn có thể chỉ muốn áp dụng câu lệnh
$users = DB::table['users']->select['name', 'email as user_email']->get[];
1 nếu một giá trị đầu vào nhất định có trong yêu cầu đến. Bạn có thể thực hiện điều này bằng cách sử dụng phương pháp $user = DB::table['users']->where['name', 'John']->first[];
39DB::table['users']->orderBy['id']->chunk[100, function[$users] {
3Phương thức
$user = DB::table['users']->where['name', 'John']->first[];
39 chỉ thực hiện Closure đã cho khi tham số đầu tiên là $user = DB::table['users']->where['name', 'John']->first[];
41. Nếu tham số đầu tiên là $roles = DB::table['roles']->pluck['title', 'name'];
foreach [$roles as $name => $title] {
7 thì Closure sẽ không được thực thiphụ trang
Trình tạo truy vấn cũng cung cấp một phương thức
$user = DB::table['users']->where['name', 'John']->first[];
43 để chèn các bản ghi vào bảng cơ sở dữ liệu. Phương thức $user = DB::table['users']->where['name', 'John']->first[];
43 chấp nhận một mảng tên cột và giá trị để chènDB::table['users']->orderBy['id']->chunk[100, function[$users] {
4Bạn thậm chí có thể chèn nhiều bản ghi vào bảng chỉ bằng một lệnh gọi tới
$user = DB::table['users']->where['name', 'John']->first[];
43 bằng cách chuyển một mảng các mảng. Mỗi mảng đại diện cho một hàng được chèn vào bảngDB::table['users']->orderBy['id']->chunk[100, function[$users] {
5ID tăng tự động
Nếu bảng có id tăng tự động, hãy sử dụng phương thức
$user = DB::table['users']->where['name', 'John']->first[];
46 để chèn bản ghi rồi truy xuất IDDB::table['users']->orderBy['id']->chunk[100, function[$users] {
6Ghi chú. Khi sử dụng PostgreSQL, phương thức insertGetId yêu cầu cột tăng tự động có tên là
47. Nếu bạn muốn truy xuất ID từ một "dãy" khác, bạn có thể chuyển tên dãy làm tham số thứ hai cho phương thức
$user = DB::table['users']->where['name', 'John']->first[];
46
$user = DB::table['users']->where['name', 'John']->first[];
cập nhật
Tất nhiên, ngoài việc chèn các bản ghi vào cơ sở dữ liệu, trình xây dựng truy vấn cũng có thể cập nhật các bản ghi hiện có bằng cách sử dụng phương thức
$user = DB::table['users']->where['name', 'John']->first[];
49. Phương thức $user = DB::table['users']->where['name', 'John']->first[];
49, giống như phương thức $user = DB::table['users']->where['name', 'John']->first[];
43, chấp nhận một mảng các cặp cột và giá trị chứa các cột sẽ được cập nhật. Bạn có thể hạn chế truy vấn $user = DB::table['users']->where['name', 'John']->first[];
49 bằng cách sử dụng mệnh đề $users = DB::table['users']->select['name', 'email as user_email']->get[];
1Tăng giảm
Trình tạo truy vấn cũng cung cấp các phương thức thuận tiện để tăng hoặc giảm giá trị của một cột nhất định. Đây chỉ đơn giản là một lối tắt, cung cấp một giao diện ngắn gọn và biểu cảm hơn so với việc viết câu lệnh
$user = DB::table['users']->where['name', 'John']->first[];
49 theo cách thủ côngCả hai phương thức này đều chấp nhận ít nhất một đối số. cột để sửa đổi. Đối số thứ hai có thể được chuyển tùy ý để kiểm soát số lượng mà theo đó cột sẽ được tăng/giảm
DB::table['users']->orderBy['id']->chunk[100, function[$users] {
7Bạn cũng có thể chỉ định các cột bổ sung để cập nhật trong quá trình hoạt động
DB::table['users']->orderBy['id']->chunk[100, function[$users] {
8xóa
Tất nhiên, trình tạo truy vấn cũng có thể được sử dụng để xóa các bản ghi khỏi bảng thông qua phương thức
$user = DB::table['users']->where['name', 'John']->first[];
55DB::table['users']->orderBy['id']->chunk[100, function[$users] {
9Bạn có thể hạn chế câu lệnh
$user = DB::table['users']->where['name', 'John']->first[];
55 bằng cách thêm mệnh đề $users = DB::table['users']->select['name', 'email as user_email']->get[];
1 trước khi gọi phương thức $user = DB::table['users']->where['name', 'John']->first[];
55$titles = DB::table['roles']->pluck['title'];
foreach [$titles as $title] {
0Nếu bạn muốn cắt bớt toàn bộ bảng, thao tác này sẽ xóa tất cả các hàng và đặt lại ID tăng tự động về 0, bạn có thể sử dụng phương pháp
$user = DB::table['users']->where['name', 'John']->first[];
59$titles = DB::table['roles']->pluck['title'];
foreach [$titles as $title] {
1khóa bi quan
Trình tạo truy vấn cũng bao gồm một vài chức năng để giúp bạn thực hiện "khóa bi quan" trên các câu lệnh
$users = DB::table['users']->count[];
$price = DB::table['orders']->max['price'];
5 của mình. Để chạy câu lệnh với "khóa chia sẻ", bạn có thể sử dụng phương thức $user = DB::table['users']->where['name', 'John']->first[];
61 trên một truy vấn. Khóa dùng chung ngăn các hàng đã chọn bị sửa đổi cho đến khi giao dịch của bạn được thực hiện$titles = DB::table['roles']->pluck['title'];
foreach [$titles as $title] {
2Ngoài ra, bạn có thể sử dụng phương pháp
$user = DB::table['users']->where['name', 'John']->first[];
62. Khóa "để cập nhật" ngăn không cho các hàng bị sửa đổi hoặc được chọn bằng một khóa dùng chung khác