Làm cách nào để đặt thứ tự tăng dần trong 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

Laravel cung cấp rất nhiều phương thức hữu ích mà bạn có thể sử dụng để làm việc với các bộ sưu tập Eloquent của mình. Thông thường, khi nhận được một số kết quả từ cơ sở dữ liệu của bạn, bạn sẽ muốn sắp xếp chúng dựa trên các tiêu chí cụ thể

Trong hướng dẫn này, bạn sẽ học cách sắp xếp thứ tự kết quả của all[] trong Laravel Eloquent

điều kiện tiên quyết

Trước khi bắt đầu, bạn cần cài đặt và chạy ứng dụng Laravel

Tôi sẽ sử dụng DigitalOcean Ubuntu Droplet cho bản demo này. Nếu muốn, bạn có thể sử dụng mã liên kết của tôi để nhận khoản tín dụng DigitalOcean trị giá 100 đô la miễn phí để khởi động máy chủ của riêng bạn

Nếu bạn chưa có, bạn có thể làm theo các bước từ hướng dẫn này về cách thực hiện điều đó

  • Cách cài đặt Laravel trên DigitalOcean với 1 cú nhấp chuột

Hoặc bạn có thể sử dụng tập lệnh tuyệt vời này để thực hiện cài đặt

  • larabuồm

Chúng tôi sẽ sử dụng một mô hình có tên là Post làm ví dụ trong hướng dẫn này

Sắp xếp các kết quả ở cấp độ truy vấn

Trước khi chúng tôi đề cập đến cách sắp xếp kết quả ở cấp độ bộ sưu tập, trước tiên, hãy trình bày ngắn gọn về cách chúng tôi sẽ sắp xếp kết quả ở cấp độ truy vấn

🤩 Nhà tài trợ tuyệt vời của chúng tôi 👇

Xem trang web

DigitalOcean cung cấp giải pháp lưu trữ đám mây đơn giản và đáng tin cậy cho phép các nhà phát triển nhanh chóng thiết lập và chạy trang web hoặc ứng dụng của họ

Xem trang web

Bảng công việc chính thức của Laravel. Tìm các nhà phát triển Laravel giỏi nhất và tài năng nhất bằng cách đăng công việc của bạn trên bảng việc làm chính thức của Laravel

Xem trang web

Tìm hiểu cách viết mã chuỗi khối của riêng bạn và tạo tiền điện tử của riêng bạn với nền tảng đào tạo trực tuyến thú vị và tương tác CoinCap. Tìm hiểu thêm về chương trình tài trợ DevDojo và xem biểu trưng của bạn tại đây để đưa thương hiệu của bạn đến với hàng nghìn nhà phát triển.

Giả sử rằng chúng tôi muốn sắp xếp tất cả các bài đăng của mình theo tên. Khi lấy kết quả từ cơ sở dữ liệu, chúng ta có thể sử dụng phương pháp orderBy tiếp theo là phương pháp

$posts = Post::orderBy['name']->toSql[];
dd[$posts];
0

$posts = Post::orderBy['name']->get[];

Nếu bạn thêm phương thức

$posts = Post::orderBy['name']->toSql[];
dd[$posts];
1 thay vì phương thức
$posts = Post::orderBy['name']->toSql[];
dd[$posts];
2 và sử dụng phương thức
$posts = Post::orderBy['name']->toSql[];
dd[$posts];
3 để in ra kết quả như sau

$posts = Post::orderBy['name']->toSql[];
dd[$posts];

Truy vấn thực tế, bạn sẽ nhận được đầu ra sau

"select * from `posts` order by `name` asc";

Vì vậy, như bạn có thể thấy, phương thức orderBy thực sự đại diện cho hàm

$posts = Post::orderBy['name']->toSql[];
dd[$posts];
5 trong SQL

Theo mặc định, Eloquent sẽ sắp xếp thứ tự tăng dần, nhưng bạn cũng có thể sắp xếp thứ tự giảm dần bằng cách sử dụng phương thức

$posts = Post::orderBy['name']->toSql[];
dd[$posts];
6

$posts = Post::orderByDesc['name']->get[];

Để tìm hiểu thêm về SQL, bạn có thể xem Sách điện tử miễn phí này về cách bắt đầu với SQL tại đây

Tuy nhiên, nếu bạn sử dụng all[] thay vì

$posts = Post::orderBy['name']->toSql[];
dd[$posts];
2, trước tiên bạn sẽ lấy tất cả các mục nhập từ Cơ sở dữ liệu của mình và lưu trữ chúng trong một bộ sưu tập. Và khi bạn đã có bộ sưu tập sẵn sàng, bạn sẽ cần sử dụng các phương pháp có sẵn thay vì các phương pháp hùng biện

Sắp xếp các kết quả ở cấp bộ sưu tập với all[]

Để tóm tắt những điều trên, bạn có thể sử dụng các phương thức Eloquent trong khi xây dựng truy vấn của mình, đây sẽ là cách hiệu quả hơn để sắp xếp kết quả của bạn. Nhưng bạn cũng có thể sử dụng các phương pháp thu thập có sẵn để sắp xếp nội dung của một bộ sưu tập

Điều này có nghĩa là ở cấp bộ sưu tập, bạn có thể sử dụng phương pháp

"select * from `posts` order by `name` asc";
0 có sẵn thay vì phương pháp orderBy có sẵn ở cấp truy vấn

Tương tự như các phương thức Eqluent, bạn có thể sắp xếp theo thứ tự tăng dần bằng phương thức

"select * from `posts` order by `name` asc";
0 và sắp xếp theo thứ tự giảm dần bằng phương thức
"select * from `posts` order by `name` asc";
3

  • tăng dần
$posts = Post::all[];

$posts->sortBy["name"];
  • giảm dần
$posts = Post::all[];

$posts->sortByDesc["name"];

Ngoài ra, bạn cũng có thể xâu chuỗi phương thức

// Ascending
$posts = Post::all[]->sortBy["name"];

//Descending
$posts = Post::all[]->sortByDesc["name"];

Bất cứ khi nào có cơ hội, tôi sẽ sử dụng phương pháp orderBy, nhưng nó vẫn khá tiện lợi để có thể dễ dàng sắp xếp kết quả của bạn ở cấp độ bộ sưu tập

Phần kết luận

Nếu bạn mới bắt đầu với Laravel, hãy nhớ xem khóa học giới thiệu này tại đây

Bắt đầu với Laravel

Nếu bạn muốn tìm hiểu thêm về PHP nói chung, hãy đảm bảo xem khóa học PHP cơ bản miễn phí này tại đây

Làm cách nào để sắp xếp dữ liệu theo thứ tự giảm dần trong Laravel?

Bạn có thể nhớ lại cách sử dụng phương thức có tên sortDesc[] , được sử dụng để sắp xếp các bản ghi theo thứ tự giảm dần. Phương thức sortDesc[] là một phần của lớp Collection, một lớp tiện ích mạnh mẽ của Laravel hoạt động như một phiên bản cải tiến của các mảng PHP gốc.

Làm cách nào để sử dụng nhiều orderBy trong Laravel?

Để sắp xếp theo nhiều cột trong Laravel, bạn có thể sử dụng phương thức "orderBy[]" và xâu chuỗi nó nhiều lần cho tất cả các điều kiện. This method accepts the "column" as the 1st parameter and the ordering direction [ASC / DESC] as the 2nd parameter.

Chủ Đề