2014-10-31 3 views
1

은 Laravel Query Builder 출력을 테스트하고 테스트하는 방법을 알고 있는지 궁금합니다.Laravel 쿼리 작성기 출력 테스트

예를 들어, PHPMYADMIN에서는 코드에서 사용하기 전에 다른 SQL 쿼리를 실행하고 테스트하고 오류를 모두 볼 수 있습니다. Laravels 쿼리 빌더로이 작업을 수행 할 수 있습니까? 누구든지 쿼리 빌더 출력을 테스트하는 유용한 도구를 알고 있습니까?

감사합니다.

+0

만들기 사용자()'뿐만 아니라 쿼리를 보려면 : 여기

예 출력 (CLI를 직접 즉시 앱을 재생 허용)입니다 . –

+0

하지만 여전히 프로젝트 내에서 쿼리를 실행해야하며 Laravel 처리기가 SQL 오류를 throw합니다. – Cozzbie

+0

make *. 내 대답과 같이 cli'장인 도구 "에서 사용하는 것을 의미합니다.) 어쨌든 실제 앱에서 작업하고 있다는 것을 기억하고 있으므로 실제 버전 인 경우 다른 환경 (가능한 경우)을 사용하거나주의해야합니다. 너 자신을 해칠 수있다. –

답변

3

artisan tinker 도구를 명령 줄에 사용하고 싶습니다. REPL이고 원하는대로 정확하게 수행합니다. - 그냥 대답에 추가 DB :: getQueryLog`의

~/$ php artisan tinker 
[1] > DB::table('some_table')->where('some_field', '=', 'someValue')->groupBy('some_other_field')->toSql(); 
// 'select * from `some_table` where `some_field` = ? group by `some_other_field`' 
[2] > User::where('id', '>', 1)->toSql(); 
// 'select * from `users` where `users`.`deleted_at` is null and `id` > ?' 
[3] > User::where('id', '>', 1)->get(); 
// object(Illuminate\Database\Eloquent\Collection)(
// 
//) 
[4] > User::where('WRONG', 1)->get(); 
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'WRONG' in 'where clause'' in ... 

[5] > User::where('id', 1) 
[5] *> ->orWhere('id', 2) 
[5] *> ->latest() 
[5] *> ->first(); 
// object(User)(
// 'incrementing' => true, 
// 'timestamps' => true, 
// 'exists' => true 
//) 
[6] > DB::getQueryLog(); 
// ... all queries will be shown here 
+0

그래,이게 내가 찾던 바로 그거야. 대단히 감사합니다!!!!! – Cozzbie

+0

슬프게도 Tinker는 Windows 시스템에서 작동하지 않습니다. 일부는 농가의 농가 상자를 통해 작동한다고 주장하지만 농가를 사용 해 본 적이 없으며 지금 농가를 구성하는 방법을 시험하기 위해 인내심을 갖지 못했습니다. 모두 고마워요, 당신은 심각한 두통에서 많은 것을 구했습니다. :) – Cozzbie

+0

Windows에서 VM + Vagrant (+ 가능하게 BIOS에서 가상화를 활성화) 만하면됩니다. 이것은 훌륭한 도구이므로, 나는 그 때문에 그냥 포기하지 않을 것입니다. –

1

당신은 https://github.com/barryvdh/laravel-debugbar을 사용할 수 있습니다. 출력과 다른 것들과 함께 모든 실행 된 쿼리를 제공합니다.

+0

아름다운 !!! 감사!!!! – Cozzbie

+0

내 기쁨 :). 매우 유용한 도구이지만 모든 쿼리와 다른 변수를 검사 할 때 페이지를 렌더링하는 데 오랜 시간이 걸릴 수도 있습니다. –

+0

그래, 문서에서 본 것. 슬프게도 그것이 정말로 내가 메인 프로젝트의 일부가되어야하기 때문에 찾고 있었던 것이지. 필자는 쿼리 작성기 구조 및 구문을 사용하여 재생할 수있는 phpLyvel의 sql 섹션과 같은 여러 유형의 쿼리를 시험해 볼 수있는 전체 laravel 설치에서 제거 된 (별도의) 도구를 찾고있었습니다. 그러나 그것의 모든 좋은. 감사. – Cozzbie