Connect with Laravel
Configure Laravel to use PhoenixDB as your PostgreSQL database.
Requirements
- PHP 8.1+ with pdo_pgsql extension
- Laravel 10+ (or any recent version)
- PhoenixDB database created
Environment Configuration
Update your .env file:
.env
DB_CONNECTION=pgsql DB_HOST=abc123.server1.phoenixdb.space DB_PORT=5432 DB_DATABASE=mydb DB_USERNAME=postgres DB_PASSWORD=YOUR_PASSWORD # Or use DATABASE_URL DATABASE_URL="postgresql://postgres:YOUR_PASSWORD@abc123.server1.phoenixdb.space:5432/mydb?sslmode=require"
Database Configuration
Update config/database.php for SSL:
config/database.php
'pgsql' => [
'driver' => 'pgsql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
'search_path' => 'public',
'sslmode' => 'require',
],Test Connection
Verify your connection with Artisan:
php artisan tinker >>> DB::connection()->getPdo();
If successful, you'll see the PDO object without errors.
Run Migrations
Run your Laravel migrations:
php artisan migrate
Eloquent Example
app/Http/Controllers/UserController.php
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
$users = User::all();
return response()->json($users);
}
public function store(Request $request)
{
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password),
]);
return response()->json($user, 201);
}
}Query Builder Example
use Illuminate\Support\Facades\DB;
// Select
$users = DB::table('users')
->where('active', true)
->orderBy('name')
->get();
// Insert
DB::table('users')->insert([
'name' => 'John Doe',
'email' => 'john@example.com',
'created_at' => now(),
]);
// Raw query
$results = DB::select('SELECT * FROM users WHERE id = ?', [1]);Tips
Connection Pooling
Laravel uses persistent connections by default. For high-traffic apps, consider using a connection pooler like PgBouncer.
Queue Configuration
If using database queues, make sure to set QUEUE_CONNECTION=databaseand run php artisan queue:table.