难以执行 laravel 5.2 数据库查询

Difficulty in executing laravel 5.2 database query

这可能是个愚蠢的问题,但由于我是 laravel 的新手,我发现设置数据库有些困难。我正在使用 laravel 5.2。在配置>database.php 这些是我的设置

'default' => env('DB_CONNECTION', 'mysql'),

对于mysql:

'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'larasite'),
        'username'  => env('DB_USERNAME', 'root'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

然后我也更改了 .env 和 .env.example 文件的设置

DB_HOST=localhost
DB_DATABASE=larasite
DB_USERNAME=root
DB_PASSWORD=""

现在在 routes.php 我有这个代码:

Route::get('about', function(){
  $posting = DB::query('select * from posts');
  dd($posting);
});

然后当我访问 localhost:8000/about 时出现以下错误。

Builder {#118 ▼
#connection: MySqlConnection {#114 ▶}
#grammar: MySqlGrammar {#115 ▶}
#processor: MySqlProcessor {#116}
#bindings: array:6 [▶]
+aggregate: null
+columns: null
+distinct: false
+from: null
+joins: null
+wheres: null
+groups: null
+havings: null
+orders: null
+limit: null
+offset: null
+unions: null
+unionLimit: null
+unionOffset: null
+unionOrders: null
+lock: null
#backups: []
#bindingBackups: []
#operators: array:26 [▶]
#useWritePdo: false
}

我注意到,即使我更改设置并输入错误的详细信息,我也会得到同样的错误。发生了什么?如何解决?

这不是错误,这是您分配给 $posting 变量的查询生成器实例的转储。您必须使用 get 方法实际从数据库中获取数据,而且您应该只使用简单的 table 方法,因为查询的其余部分将由查询生成器生成。

下面的代码将 return posts table 中的所有条目:

Route::get('about', function(){
  $posting = DB::table('posts')->get();
  dd($posting);
});

您应该从头到尾阅读 Query Builder Documentation 以更好地理解它的工作原理。只读它的点点滴滴要容易得多,而且读起来不是很长。