Theo mình nghĩ ko cần thiết, vì khi bạn explain câu sql thì cho dù bạn có join sau hay trước thì theo thứ tự nó vẫn filter trước rồi mới join. Bạn thử đo tốc độ chạy bằng 2 cách sẽ thấy ko khác biệt
Chào bạn. Mình không rõ bạn đã giải quyết được vấn này hay chưa? Nhưng mình có 1 cách giải quyết gộp truy vấn của bạn lại và khuyên bạn không nên dùng đoạn for sẽ làm cấp số nhân số lần truy vấn vào database. Bạn tham khảo cách của mình nhé:
$this->userRepository->getModel()->with('terminateContract')
->addSelect(
DB::raw('SUM(CASE
WHEN terminateContract.status = 2
THEN terminateContract.amount
ELSE 0 END) AS sale_direct')
)
->addSelect(
DB::raw('SUM(CASE
WHEN terminateContract.status = 1
THEN terminateContract.amount
ELSE 0 END) AS sale_in_direct')
)
->where('terminateContract.startdate', $startDate)
->where('terminateContract.enddate', $endDate)
Phần ->with('terminateContract') bạn nhớ viết relationship trong model nhé.
Trong ảnh mình thấy bạn có 3 hàm getAllRewardUserIdByMoth, getAllPunishdUserIdByMoth, getTotalCommission. Mình không rõ 3 hàm này dùng để xử lý logic hay là trỏ đến 1 model nào khác hay không nên không thể gộp vào truy vấn như bên trên cho bạn.
Hi bạn! Mình không biết bạn đã có cách giải quyết vấn đề của bạn chưa nhưng đây là cách mình thưởng sử dụng. Bên dưới là 1 ví dụ của mình dùng trong phân quyền, bạn tham khảo nhé
Trong model
Trong service
Khi trỏ with vào cái relationship trong model là đã lấy join được nhiều bảng mình mong muốn rồi
cho em hỏi , nếu như trong controller xử lí như vậy thì ở route mình get hay post sao vậy ạ , em tới khúc này post thì nó báo lỗi , get thi nó báo trống validate nó báo trống
cho em hỏi có bài nào chỉ tường tận cách vận hành và đường đi của API laravel không ạ , em có thắc mắc là vậy return về json thì trong view muốn bắt api đó để show ra thì phải làm thế
cho em hỏi cái Controller nếu mình cho nó vào 1 folder tên là Admin/ControllerAA.php . trong đó sẽ chạy những action của admin
thì trong route mình phải làm sao nó nó hiểu là sẽ vào Admin tìm controllerAA vậy ạ .
hay chỉ cần route:get('admin',ControllerAA::class, 'home'); là nó tự động tìm ControllerAA luôn ạ. vậy nếu có 2 folder khác tên nhưng có Controller trùng tên nhau thì sao ạ
THẢO LUẬN
Theo mình nghĩ ko cần thiết, vì khi bạn explain câu sql thì cho dù bạn có join sau hay trước thì theo thứ tự nó vẫn filter trước rồi mới join. Bạn thử đo tốc độ chạy bằng 2 cách sẽ thấy ko khác biệt
a có thể cho em xin 2 file digits.npy và alphas.npy được không ạ? em cảm ơn
Bài viết rất hay và hữu ích
xui cho bác là cái thư viện này ít ai sài nên ít người đọc , cũng không ai vote cho bác , thôi em cho bác +1 an ủi
hơi sơ sài và khó hiểu với người mới
Chào bạn. Mình không rõ bạn đã giải quyết được vấn này hay chưa? Nhưng mình có 1 cách giải quyết gộp truy vấn của bạn lại và khuyên bạn không nên dùng đoạn for sẽ làm cấp số nhân số lần truy vấn vào database. Bạn tham khảo cách của mình nhé:
Phần ->with('terminateContract') bạn nhớ viết relationship trong model nhé. Trong ảnh mình thấy bạn có 3 hàm getAllRewardUserIdByMoth, getAllPunishdUserIdByMoth, getTotalCommission. Mình không rõ 3 hàm này dùng để xử lý logic hay là trỏ đến 1 model nào khác hay không nên không thể gộp vào truy vấn như bên trên cho bạn.
Hi bạn! Mình không biết bạn đã có cách giải quyết vấn đề của bạn chưa nhưng đây là cách mình thưởng sử dụng. Bên dưới là 1 ví dụ của mình dùng trong phân quyền, bạn tham khảo nhé Trong model
Trong service
Khi trỏ with vào cái relationship trong model là đã lấy join được nhiều bảng mình mong muốn rồi
Liệu nếu logic nó nhiều hơn 2 toán tử or và and thì có nên build tree DSL xử lý logic không ạ?
cho em hỏi là cái "__dirname" này dùng làm gì ạ? path: path.resolve(__dirname, 'dist')
bài chất quá anh ơi
@hoangtrung99 lâu rồi c mới vào viblo
@TrangHTT reply sớm quá chị :v
cho em hỏi , nếu như trong controller xử lí như vậy thì ở route mình get hay post sao vậy ạ , em tới khúc này post thì nó báo lỗi , get thi nó báo trống validate nó báo trống
@tranxuanthang nếu vậy thì cần đổi đuôi file
.js
sang.mjs
anh à@maicaotri cũng chỉ là sở thích cá nhân thôi, khi vào dự án nào đó thì 1 trong những file cần xem đầu tiên thường là file package.json
cho em hỏi có bài nào chỉ tường tận cách vận hành và đường đi của API laravel không ạ , em có thắc mắc là vậy return về json thì trong view muốn bắt api đó để show ra thì phải làm thế
@anhvu930 ok thanks bạn nhé, các thư viện như ECharts thì hỗ trợ nhiều để sử dụng và có thể ổn định hơn rồi.
Do mình đang muốn tìm hiểu về các thư viện mới ra , và mới ra sẽ có những cái hay riêng và thử xem nó có gì hay để áp dụng.
Okay bác nha @devil_boom_129
cho em hỏi cái Controller nếu mình cho nó vào 1 folder tên là Admin/ControllerAA.php . trong đó sẽ chạy những action của admin thì trong route mình phải làm sao nó nó hiểu là sẽ vào Admin tìm controllerAA vậy ạ . hay chỉ cần route:get('admin',ControllerAA::class, 'home'); là nó tự động tìm ControllerAA luôn ạ. vậy nếu có 2 folder khác tên nhưng có Controller trùng tên nhau thì sao ạ