2014-12-04 12 views
7

저는 buyer_id 열과 seller_id 열이있는 테이블 시장을 가지고있는 프로젝트를 진행하고 있습니다. 판매자가 상품을 시장에 내놓을 때, seller_id와 buyer_id는 같아서 현재 제품을 판매 중임을 의미합니다. 판매 후 구매자 ID는 제품을 구입 한 사람으로 변경됩니다. 이제Eloquent를 통해 동일한 값을 가진 laravel의 두 열을 찾으십니까?

나는 웅변을 통해이 쿼리를하고있는 중이 판매중인 모든 제품을 게재하고 내 응용 프로그램의 장소 :

$market_records = Market::where('seller_id', '!=', Auth::user()->id)->where('seller_id', '=', 'buyer_id')->get(); 

내가 동일한 사용자가 아닌 판매 제품 만까지 원하는 누가 로그인했는지, seller_id와 buyer_id가 같은 제품 만 갖고 싶습니다. 이제 두 번째 where 문에서 문제는 seller_id와 내가 원하는 문자열이 아닌 'buyer_id' 문자열을 비교한다는 것입니다. buyer_id가 seller_id 인 레코드 만 가져올 수있는 방법은 무엇입니까? 1

$market_records = Market::where('seller_id', '!=', Auth::user()->id)->whereRaw('seller_id = buyer_id')->get(); 

답변

13

당신은 그것을 할 whereRaw를 사용할 필요가 사용할 수있는 버전 whereColumn (docs) :

$same = Market::whereColumn('seller_id', 'buyer_id')->get(); 
+0

매력처럼 작동합니다. 감사. – Rohan

3

옵션을 : ->whereRaw('column1 = column2')

옵션 2 :!하면 판매 buyer_id == 널 (null) = seller_id, ->where('buyer_id', '=', null)

+0

외래 키는 null 일 수 없습니다. – Rohan

+0

이들은 1 일 수 있고, 구매자 1은 더미 일 수 있습니다. 아이디어는 표준 값입니다. –

관련 문제