在 Laravel 中使用 Supabase
学习如何创建 PHP Laravel 项目,连接到 Supabase Postgres 数据库,并配置用户认证。
1
Terminal
1composer create-project laravel/laravel example-app
2
安装认证模板
安装Laravel Breeze,这是Laravel所有认证功能的简单实现。
Terminal
12composer require laravel/breeze --devphp artisan breeze:install
3
设置Postgres连接信息
访问database.new创建一个新的Supabase项目。请妥善保存您的数据库密码。
项目启动后,导航至项目仪表板并点击连接。
找到Session Pooler连接字符串并复制该字符串。您需要用保存的数据库密码替换其中的Password字段。如果忘记密码,可以在数据库设置中重置。
如果您处于IPv6环境或使用IPv4附加组件,可以直接使用连接字符串而非Session模式下的Supavisor。
.env
12DB_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
1234567891011121314'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
1php artisan migrate
6
启动应用
运行开发服务器。在浏览器中访问http://127.0.0.1:8000查看您的应用。您也可以访问http://127.0.0.1:8000/register和http://127.0.0.1:8000/login来注册和登录用户。
Terminal
1php artisan serve