这可能是一个愚蠢的问题,但由于我是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
}
我注意到,即使我更改设置并输入错误的详细信息,我也会收到同样的错误。发生了什么?怎么解决这个问题?
答案 0 :(得分:2)
这不是错误,而是您要分配给$posting
变量的查询生成器实例的转储。您必须使用get
方法实际从数据库中获取数据,并且您应该只使用简单的table
方法,因为查询的其余部分将由查询生成器生成。
以下代码将返回posts
表中的所有条目:
Route::get('about', function(){
$posting = DB::table('posts')->get();
dd($posting);
});
您应该从头到尾阅读Query Builder Documentation,以便更好地了解它的运作方式。只是阅读它的一些部分会更容易,而且阅读时间不长。