2017-09-24 6 views
0

저는 Laravel 함수의 출력을 MySQL에서 테스트하고 싶습니다. 코드를 SQL 요청으로 변환해야합니다.Laravel 함수를 SQL 요청 테스트로 변환합니다.

기능 :

return DB::table('products') 
     ->leftJoin('product_locations', 'products.id', '=', 'product_locations.productId') 
     ->select(DB::raw('IF(product_locations.id is not null,concat(product_locations.id,"-","M"),concat(products.id,"-","N")) as id'), DB::raw('IF(product_locations.id is not null,1,0) as multilocation'), 'products.productName', 'products.productName as text', 'product_locations.productLocationName', 'product_locations.binLocationName', 'product_locations.unitCost', 'product_locations.amount') 
     ->orderBy('products.productName') 
     ->distinct() 
     ->get(); 

답변

2

사용 쿼리 로깅 :

DB::connection()->enableQueryLog(); 

DB::table('products') 
     ->leftJoin('product_locations', 'products.id', '=', 'product_locations.productId') 
     ->select(DB::raw('IF(product_locations.id is not null,concat(product_locations.id,"-","M"),concat(products.id,"-","N")) as id'), DB::raw('IF(product_locations.id is not null,1,0) as multilocation'), 'products.productName', 'products.productName as text', 'product_locations.productLocationName', 'product_locations.binLocationName', 'product_locations.unitCost', 'product_locations.amount') 
     ->orderBy('products.productName') 
     ->distinct() 
     ->get(); 

dd(DB::getQueryLog()) 
+0

도움을 주셔서 감사합니다. 지정한대로 쿼리 로깅을 사용하려고했지만 "chrom 's developer tools"에 대한 결과가 전혀 표시되지 않습니다. – allam

+0

dev 도구가 아닌 화면에 실행 된 쿼리가 표시됩니다 –

0

그것은 방법이 아니다,하지만 여전히 적은 노력으로 동일한 결과를 얻을 수 있습니다.

예를 들어 테이블 이름이나 열 이름의 마지막 문자를 제거하는 등의 작은 실수를하십시오. 그런 다음 쿼리를 표시하는 오류가 발생합니다. 그러면 화면에서 쉽게 쿼리를 얻을 수 있습니다.

쿼리에서 products 대신 product을 사용하십시오. 이로 인해 쿼리에서 오류가 발생하고이를 표시합니다.