2014-11-18 6 views
0

내가 가지고있는 테이블이 하나 있는데 그 중 하나는 사용자 테이블로 사용자 이름을 검색하여이 테이블의 ID를 가져오고 두 번째는 prize_info 테이블이며 여기에서 상품을 검색하여 user_id를 가져오고 싶습니다. 내가 원하는 것은 prize_info.user_id를 가져오고 user.id.what은 laravel4에서이 검색 부분을위한 최선의 방법인가? 여기 내 코드는여러 테이블에서 데이터 가져 오기

 $search = '%'.Input::get('keywords').'%'; 
    $pages  = DB::table('user') 
    ->select('user.id','user.username') 
    ->where('username', 'LIKE', $search)->get(); 

    $blogitems = DB::table('prize_info') 
    ->select('prize_info.id', 'prize_info.prize_name', 'prize_info.user_id') 
    ->where('prize_name', 'LIKE', $search)->get(); 

위의 코드에 대한 귀하의 생각은 무엇입니까 ????? 및이 줄로 결과를 확인하지만 작동하지 않습니다!

$results = $pages->union($blogitems)->take(30)->get(); 

저를 도와주세요! 가장 관련

답변

0

당신이이 일을 Laravel의 Eloquent ORM Relationships을 사용 권합니다. 사용 가능한 관계를 사용하여 관련 레코드를 쉽게 가져올 수 있습니다.

  1. 일대일
  2. 일대
  3. 에 BelongsTo
  4. BelongsToMany
  5. hasMany의
  6. hasOne의
  7. 다형성 테이블 (하여 피벗 테이블)
+0

더 자세히 설명해 주시겠습니까? 위의 관계에 대해 알고 있지만 생각했습니다. 여러 테이블을 검색 할 때 관계를 사용할 수 없습니다. 가능한 경우 자세히 설명해주세요. 감사합니다. – echoHamed

+0

검색 쿼리를 작성하면 관계를 통해 여러 테이블에 저장하려는 관련 데이터를 검색하는 데 도움이됩니다. – Richie

0

다음과 같이 사용할 수 있습니다 :

$search = '%'.Input::get('keywords').'%' 
$results = DB::table('user') 
        ->select('user.id','user.username','prize_info.id', 'prize_info.prize_name', 'prize_info.user_id') 
        ->leftJoin('prize_info','user.id','prize_info.user_id') 
        ->take(30) 
        ->get(); 
관련 문제