Xin Giúp đỡ tối ưu code
Mình có học làm 1 web đơn giản, hiện tại mình đang muốn tạo chart bằng Google Chart, mình có tạo 1 form rồi điền Mã CK vào, từ form này mình dùng $CK = $request-> get('CK');
để lấy được MÃ CK xem người dùng muốn xem là gì, từ đó tính toán trung bình doanh thu và trung bình lợi nhuận theo nghành. code ở Controller mình làm nếu có thể tối ưu nhờ các bạn chỉ giúp, với code trên mình in dữ liệu vào html của google chart thì VScode báo lỗi tùm lum Property assignment expected và Declaration or statement expected. Nhưng biểu đồ vẫn chạy được. Xin hỏi lỗi này là gì. Cảm ơn các bạn đã giúp đỡ
2 CÂU TRẢ LỜI
đầu tiên thì bạn nên tìm hiểu qua về cách đặt tên file, tên biến, về convention, bạn có thể tham khảo qua bài viết này: https://viblo.asia/p/cac-convention-thuong-gap-khi-moi-bat-dau-training-php-tai-framgia-bJzKmgq6l9N
Và nhớ dùng hết tiếng anh bạn nhé
M góp ý phần controller, để tính trung bình bạn phải gọi 2 lần câu query, trong khi đó bạn gọi 1 lần sau đó dùng https://laravel.com/docs/7.x/collections#method-avg. cả dòng 13-14 cũng vậy.
mình cũng muốn giảm thiểu câu lệnh để tính AVG, đọc hướng dẫn link bạn chỉ vẫn chưa hiểu là có thể xử lý colect như nào vì mình tính trung bình của cột 1, rồi tính TB cột 2.... nếu có thể bạn nói rõ hơn 1 chút được không, tại mình không phải dân chuyên về lập trình. Cảm ơn
@ngocson0211 Ý bạn ấy là như này:
//lấy ra các bản ghi theo ngành ta được 1 tập các kết quả mà laravel gọi là collection
$collectionData = DB::table('Bgfull')->where('NGANH', $nganh)->get();
//sau đó ta sẽ tính trng bình bằng collection trên, như vậy ta chỉ cần 1 câu truy vấn thay vì 2 câu như trong code của bạn:
$dtnganh = $collectionData->avg('TTDTQUY');
$lnnganh = $collectionData->avg('TTLNQUY');
@caophihung94 cảm ơn bạn Hùng rất nhiều!