2017-10-13 6 views
0

저는 기능별로 laravel order와 관련된 문제에 직면하고 있습니다. 국가별로 레코드를 가져오고 결과는 현재 사용자 국가에서 시작해야합니다.laravel orderby의 마주 치기

예를 들면. 인증 사용자가 인도에 속한 경우 목록은 인도에서 시작해야합니다.

내 현재 코드는

$users = User::where('status', '=',1)->with(['profile'])->latest()->orderBy('last_login', 'desc')->paginate(12); 

감사

+1

코드를 보여주십시오. –

+0

@NitishKumar 질문 업데이트 –

+0

'last_login '이란 무엇입니까? 사용자 테이블의 속성입니까? –

답변

0

, 내가 이해 한대로, 당신이 User 모델과의 관계에 profiles 테이블에서 country 속성을 통해 데이터를 정렬 할 찾고 확인 , 당신은 이것을 사용해야합니다. join 구조에 대해서는 잘 모르겠습니다. 그래서 저는 여러분에게 예제를드립니다. 당신이 기준으로 정렬한다고 가정 profiles =>id 뭔가 당신은 쓸 수 있습니다 : 나는 이런 식으로 뭔가를하는 것이 좋습니다 의견에 주어진 요구 사항에 따라가 :

편집 모든 먼저

에 의해 인증 된 사용자를 가지고 있습니다
$AuthUser = Auth::user(); 

그런 다음 그래서 당신은 인증 된 사용자 국가별로 분류 사용자를 가질 수있다 이런 식으로 관계를

$users = User::->leftJoinRelations('profile') 
    ->orderByRaw("FIELD(country , ". $AuthUser->profile->country ."), ASC") 
    ->paginate(); 

를 호출 할 수 있습니다. 희망이 도움이됩니다.

+0

plzz check DB 구조 https://screenshots.firefox.com/VaxIADeu5hWwZCyI/localhost –

+0

국가별로 정렬하고 싶지 않습니다. 나는 그 사용자가 그 사용자와 동일한 첫 번째 레코드를 보여주고 싶습니다. 예를 들어 Auth :: user가 india에 속한 경우 표의 모든 레코드가 인도에서 시작해야합니다 –

+0

스크린 샷에 프로필 테이블의 전체 구조가 표시되지 않습니다. 친절하게도 완벽한 세부 사항을 제공하십시오. 우리는 불완전한 세부 사항으로 당신을 도울 수 없습니다. –