我见过几篇与此相关的帖子,但到目前为止还没有任何工作。
我目前的设置是XAMPP,Laravel 5和Postgres。这是我的welcome.blade.php
文件:
@extends('layout')
@section('content')
<?php
$results = DB::select('select * from logs', array(1));
echo $results;
// $host = "host=127.0.0.1";
// $port = "port=5432";
// $dbname = "dbname=test";
//
// $db = pg_connect( "$host $port $dbname user=postgres password=root" );
// if(!$db){
// echo "Error : Unable to open database\n";
// } else {
// echo "Opened database successfully\n";
// }
?>
@stop
当我访问http://localhost:8000/
时,收到错误:SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
我还在php.ini文件中取消注释了pgsql扩展。我认为也许postgres是禁用的,所以我取消注释了该部分并注释掉了PDO部分。每当我访问http://localhost/resources/views/welcome.blade.php
时,我都会
@extends('layout') @section('content') Opened database successfully @stop
这很好。我知道postgres正在运作。
这是我的.env
文件:
DB_CONNECTION=pgsql
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=test
DB_USERNAME=postgres
DB_PASSWORD=root
在我的database.php
文件中,我有这个:
'default' => env('DB_CONNECTION', 'pgsql'),
和
'pgsql' => [
'driver' => 'pgsql',
// 'host' => env('DB_HOST', 'localhost'),
// 'port' => env('DB_PORT', '5432'),
// 'database' => env('DB_DATABASE', 'test'),
// 'username' => env('DB_USERNAME', 'postgres'),
// 'password' => env('DB_PASSWORD', 'root'),
'host' => 'localhost',
'port' => '5432',
'database' => 'test',
'username' => 'postgres',
'password' => 'root',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'data',
'sslmode' => 'prefer',
],
我不确定我是否需要env()
。我尝试了两种方式,都没有工作。
我在这里遗漏了什么吗?帮助将不胜感激。