Laravel查询生成器输出测试

时间:2014-10-31 07:35:53

标签: sql laravel testing laravel-4

只是想知道是否有人知道测试Laravel Query Builder输出并试验它的方法。

例如,在PHPMYADMIN中,您可以在决定在代码中使用它之前运行并测试不同的SQL查询并查看错误。可以使用Laravels查询构建器完成吗?有没有人知道测试查询构建器输出的任何有用工具?

感谢。

2 个答案:

答案 0 :(得分:4)

您希望在命令行中使用artisan tinker工具。这是一个REPL,它完全符合您的要求。

这是示例输出(允许直接在cli中直接播放您的应用):

~/$ 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

答案 1 :(得分:1)

您可以使用https://github.com/barryvdh/laravel-debugbar,它会为您提供所有已执行的查询及其输出和其他内容。