快速开始

在 Laravel 中使用 Supabase

学习如何创建 PHP Laravel 项目,连接到 Supabase Postgres 数据库,并配置用户认证。


1

创建Laravel项目

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

更多详情请参阅Laravel文档

Terminal
1
composer create-project laravel/laravel example-app
2

安装认证模板

安装Laravel Breeze,这是Laravel所有认证功能的简单实现。

Terminal
1
2
composer require laravel/breeze --devphp artisan breeze:install
3

设置Postgres连接信息

访问database.new创建一个新的Supabase项目。请妥善保存您的数据库密码。

项目启动后,导航至项目仪表板并点击连接

找到Session Pooler连接字符串并复制该字符串。您需要用保存的数据库密码替换其中的Password字段。如果忘记密码,可以在数据库设置中重置。

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

更改默认schema

Laravel默认使用public schema。我们建议更改此设置,因为Supabase将public schema暴露为数据API

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

search_path中指定的schema必须在Supabase中存在。您可以通过表编辑器创建新的schema。

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

运行数据库迁移

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

注意:Laravel不使用Supabase Auth,而是实现自己的认证系统!

Terminal
1
php artisan migrate