2014-10-31 3 views
1

просто интересовался, знает ли кто-нибудь, как тестировать Laravel Query Builder и экспериментировать с ним.Laravel Query Builder Output Testing

Например, в PHPMYADMIN вы можете запускать и тестировать различные SQL-запросы и видеть ошибки и все, прежде чем вы решите использовать их в своем коде. Можно ли это сделать с помощью построителя запросов Laravels? Кто-нибудь знает какие-либо полезные инструменты для тестирования выхода сборщиков запросов?

Спасибо.

+0

Сделать пользователь 'DB :: getQueryLog()', а также видеть ваши вопросы - просто добавил к ответу , –

+0

Но вам все равно придется выполнять запросы в рамках проекта, и SQL-ошибки будут вызываться обработчиком Laravel ... – Cozzbie

+0

использовать *. Я имею в виду использовать его в cli 'artisan tinker', как в моем ответе;) В любом случае помните, что вы все еще работаете над настоящим приложением, поэтому, если это живая версия, то либо используйте другую среду (если возможно), либо будьте осторожны, потому что вы можете навредить себе. –

ответ

3

Вы хотите, чтобы artisan tinker инструмент в командной строке. Это REPL, и он делает именно то, что вы хотите.

Вот пример вывода (позволяет играть с приложением непосредственно и мгновенно в кли):

~/$ 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. Некоторые утверждают, что это работает через коробку Vagrant усадьбы, но я никогда раньше не использовал Homestead и не испытываю терпения сейчас, чтобы начать тестирование, как ее настроить. Спасибо, тем не менее, вы много спасли от серьезных головных болей. :) – Cozzbie

+0

Я полагаю, что все, что вам нужно в окнах, это VM + Vagrant (возможно, возможно, включить виртуализацию в BIOS), вот и все. Это отличный инструмент, поэтому я бы не отказался только из-за этого. –

1

вы можете использовать https://github.com/barryvdh/laravel-debugbar, он предоставит вам все выполненные запросы вместе с его выходом и другими вещами.

+0

Красивые !!! Благодаря!!!! – Cozzbie

+0

мое удовольствие :). это очень полезный инструмент, но когда-либо это займет много времени, чтобы отобразить страницу, поскольку она проверяет все запросы и другие переменные. –

+0

Да, видел это в документах. К сожалению, хотя это не то, что я искал, так как он все еще должен быть частью основного проекта. Был поиск инструмента, который был удален (отдельно) из всей установки laravel, где я могу просто играть с конструкторами и конструкторами построителя запросов и опробовать различные типы запросов, например, в разделе sql phpmyadmin. Но все это хорошо. Благодарю. – Cozzbie