执行laravel 5.2数据库查询困难

时间:2016-01-29 19:17:16

标签: laravel laravel-5 laravel-5.2

这可能是一个愚蠢的问题,但由于我是laravel的新手,我发现设置数据库有点困难。我正在使用laravel 5.2。 IN config> 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 /关于我得到以下错误。

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
}

我注意到,即使我更改设置并输入错误的详细信息,我也会收到同样的错误。发生了什么?怎么解决这个问题?

1 个答案:

答案 0 :(得分:2)

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

以下代码将返回posts表中的所有条目:

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

您应该从头到尾阅读Query Builder Documentation,以便更好地了解它的运作方式。只是阅读它的一些部分会更容易,而且阅读时间不长。