入门

使用 Supabase 与 Laravel

了解如何创建一个 PHP Laravel 项目,将其连接到您的 Supabase Postgres 数据库,并配置用户身份验证。


1

创建 Laravel 项目

确保您的 PHP 和 Composer 版本是最新的,然后使用 composer create-project 命令来搭建一个新的 Laravel 项目。

更多详情请参阅 Laravel 文档

终端
1
composer create-project laravel/laravel example-app
2

安装身份验证模板

安装 Laravel Breeze,这是 Laravel 所有 身份验证功能 的一个简单实现。

终端
1
composer require laravel/breeze --dev
2
php artisan breeze:install
3

设置 Postgres 连接详情

前往 database.new 并创建一个新的 Supabase 项目。安全地保存您的数据库密码。

当您的项目启动并运行时,导航到您的项目仪表板并点击 连接

查找 Session Pooler 连接字符串并复制该字符串。您需要将密码替换为您保存的数据库密码。如果您没有密码,可以在您的 数据库设置 中重置数据库密码。

.env
1
DB_CONNECTION=pgsql
2
DB_URL=postgres://postgres.xxxx:password@xxxx.pooler.supabase.com:5432/postgres
4

更改默认模式

默认情况下 Laravel 使用 public 模式。我们建议更改此设置,因为 Supabase 将 public 模式作为 数据 API 公开。

您可以通过修改 app/config/database.php 中的 search_path 变量来更改 Laravel 应用程序的模式。

您在 search_path 中指定的模式必须在 Supabase 上存在。您可以在 表格编辑器 中创建一个新的模式。

app/config/database.php
1
'pgsql' => [
2
'driver' => 'pgsql',
3
'url' => env('DB_URL'),
4
'host' => env('DB_HOST', '127.0.0.1'),
5
'port' => env('DB_PORT', '5432'),
6
'database' => env('DB_DATABASE', 'laravel'),
7
'username' => env('DB_USERNAME', 'root'),
8
'password' => env('DB_PASSWORD', ''),
9
'charset' => env('DB_CHARSET', 'utf8'),
10
'prefix' => '',
11
'prefix_indexes' => true,
12
'search_path' => 'laravel',
13
'sslmode' => 'prefer',
14
],
5

运行数据库迁移

Laravel 附带数据库迁移文件,用于设置 Laravel 身份验证和用户管理所需的表。

注意:Laravel 不使用 Supabase Auth,而是实现了它自己的身份验证系统!

终端
1
php artisan migrate
6

启动应用

运行开发服务器。在浏览器中访问 http://127.0.0.1:8000 以查看您的应用程序。您还可以导航到 http://127.0.0.1:8000/registerhttp://127.0.0.1:8000/login 来注册和登录用户。

终端
1
php artisan serve