laravel ->count() vs ->get()->count()
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 ạ:(
3 ANSWERS
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.
Như thế e nghĩ kết quả nó sẽ giống nhau chứ ạ?
@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 đề
@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:(
- 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
rồi get xong hiển thị ra view kiểu gì thế các bác