2017-09-26 4 views
0

원시쿼리 작성기를 사용하여이 원시 쿼리를 작성하는 방법은 무엇입니까? 내게 맞습니까?

$sql = 'SELECT c.* 
FROM catalogs c 
LEFT JOIN (SELECT s.* FROM stock s WHERE s.date = "'.$dateOption.'") as sb  
on sb.id_product = c.id_product 
WHERE c.id_branch = '.Auth::user()->id_branch.'; 

$list = DB::select($sql); 

내가 쿼리 빌더를 사용하여 수정 된 쿼리,하지만 결과의 예상 결과는

$lists = DB::table('catalogs') 
      ->leftJoin('stock', 's.id_product','=','catalogs.id_product') 
      ->where('s.date',$dateOption) 
      ->where('catalogs.id_branch',Auth::user()->id_branch) 
      ->get(); 

누구든지 내가 쿼리 빌더를 작성하는 방법을 말해 줄 수 정확하지 않습니다?

+1

오류가 있습니까? 두 결과를 모두 보여줄 수 있습니까? 올바른 결과 집합은 무엇입니까? 감사합니다. – aaron0207

+0

검색어에 어떤 문제가 있습니까? –

+0

난 쿼리 작성기에서 쓴 정확한지 여부를 원시 쿼리를 참조하십시오 알고 싶어요. – Crazy

답변

0

정의 관계 (more details)

hasOne의 방법에 전달 된 첫 번째 인수는 관련 모델의 이름입니다. 관계가 정의되면 Eloquent의 동적 속성을 사용하여 관련 레코드를 검색 할 수 있습니다. 동적 속성을 사용하면 모델에 정의 된 속성 인 것처럼 관계 메서드에 액세스 할 수 있습니다.

네임 스페이스 App;

use Illuminate\Database\Eloquent\Model; 

class User extends Model 
{ 
    /** 
    * Get the phone record associated with the user. 
    */ 
    public function phone() 
    { 
     return $this->hasOne('App\Phone'); 
    } 
} 

그리고 다음과 같이 가입 할 수 있습니다.

$phone = User::find(1)->phone; 
+0

OP가 쿼리 작성기에서 솔루션을 원합니다 (설득력이 없습니다) –

+0

이것은 더 재사용 가능하며 프레임 워크를 사용하는 목적은 무엇입니까? :) – Bira

+0

이해하고 있지만 OP가 능숙하지 않을 수 있습니다. 그 이유는 다음과 같습니다. P –

관련 문제