Laravel은 프로젝트 종료 날짜별로 최신 프로젝트를 정렬합니다.
P粉773659687
P粉773659687 2023-09-11 21:38:55
0
1
513

현재 로그인한 사용자의 항목을 가져오려면 범위를 작성해야 합니다. 현재 로그인한 사용자에게 모든 프로젝트 보기 권한이 있는 경우 시스템의 모든 프로젝트를 나열하고 싶습니다. 그렇지 않으면 로그인한 사용자가 만든 프로젝트 또는 로그인한 사용자가 작업을 통해 할당한 프로젝트를 나열하고 싶습니다. Project 모델에 다음 범위를 작성해 보았습니다.

으아악

withBudget의 범위는 다음과 같습니다

으아악

지금까지는 작동하지만 정확하지 않습니다. 때때로 로그인한 사용자가 관리자이고 모든 권한을 가지고 있다는 것을 알 때 몇 가지 항목만 가져오고 항목도 내림차순으로 정렬되는 경우가 있습니다. created_atend_date< /代码> 대신

라고 생각합니다.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 더 많은 정보가 필요하면 알려주세요

편집 일부 쿼리를 제거하면 다음 코드 조각이 작동합니다.

으아악

그런 다음 다음을 통해 항목을 받습니다.

으아악

위 코드 조각이 작동하는 동안 한 가지 작업만 수행하지는 않지만(지금은 Eager 로딩을 잊어버리세요) 마감일 전에 남은 시간을 기준으로 항목을 나열해야 합니다. 그러니 곧 마감되는 상품, 시간이 더 남은 상품, 이미 마감되는 상품을 순서대로 나열해야 합니다

P粉773659687
P粉773659687

모든 응답(1)
P粉258788831

주문 문제는 어쨌든 직접 주문을 추가하기 때문에 latest() 以及 orderBy('end_date', 'desc') 作为 latest() 工作于 created_at。您可能根本不需要 latest() 전화를 거는 것일 수도 있다고 생각합니다.

사용자 범위 문제에 관해서는 두 개의 orWhereHas 调用而不是 whereHasorWhereHas 可能会在 scopeForUser 사용으로 인해 문제가 발생하는지 궁금합니다.

아마도 또 다른 접근 방식은 다음과 같습니다:

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿