Asked thg 4 15, 2020 4:50 SA 2499 0 3
  • 2499 0 3
0

laravel ->count() vs ->get()->count()

Share
  • 2499 0 3

Các bác giải thích giúp e khác nhau của 2 thằng trên với ạ, (laravel ->count() vs ->get()->count()). e có 1 câu query mà kết quả của nó đang khác nhau ạ:(

Avatar Phạm Anh Tuấn @PhamAnh-Tuan
thg 5 13, 2021 3:57 CH

rồi get xong hiển thị ra view kiểu gì thế các bác

0
| Reply
Share

3 ANSWERS


Answered thg 4 15, 2020 4:52 SA
+3

laravel ->count() là một sql query

->get()->count() là đếm số phần tử trong mảng

Share
Answered thg 4 15, 2020 4:57 SA
+2

laravel ->count() sẽ đếm các record trong DB bằng query select count(*) as aggregate ...

->get()->count() sẽ đếm cái item trong collection của Laravel.

Share
Avatar kaka @chauchauonline
thg 4 15, 2020 4:58 SA

Như thế e nghĩ kết quả nó sẽ giống nhau chứ ạ?

0
| Reply
Share
thg 4 15, 2020 5:01 SA

@chauchauonline không bạn ơi :v nếu dùng sql count thì sẽ đếm số bản ghi phù hợp điều kiện rồi trả ra cho bạn kết quả là một con số,

còn get()->count() là bạn sẽ lấy ra các bản ghi theo điều kiện rồi đếm số bản ghi được lấy ra sau.

Còn nếu kết quả khác nhau tức là điều kiện đếm của bạn đang có vấn đề

0
| Reply
Share
Avatar kaka @chauchauonline
thg 4 15, 2020 7:14 SA

@hongquanfit e mới thử: model::where(dk)->groupBy(dk); mà ->count() với ->get()->count(); nó trả về 2 kết quả khác nhau:(

0
| Reply
Share
Answered thg 4 15, 2020 4:55 SA
+1
  • laravel ->count() là bạn dùng query để count()
  • còn ->get()->count() thì là bạn lấy ra dữ liệu (dữ liệu dạng này là collection) sau đó bạn dùng hàm count() của collection để count() https://laravel.com/docs/5.8/collections#method-count
Share
Viblo
Let's register a Viblo Account to get more interesting posts.