---
title: "Laravel Eloquent ORM 连接 OceanBase 数据库示例程序 - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: Laravel Eloquent ORM 连接 OceanBase 数据库示例程序 功能适用性 Laravel 适用于 OceanBase 数据库 MySQL 模式。 Laravel 是一个优雅的 PHP Web 开发框架，其内置的 Eloquent ORM 提供了简洁的 ActiveRecord 实现，使数据库操作…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.5 LTS

# Laravel Eloquent ORM 连接 OceanBase 数据库示例程序

更新时间：2026-04-09 14:12:04

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.5/zh-CN/680.ecological-integration/200.orms-frameworks/800.php/200.laravel-connection-oceanbase-database-program.md)

#### 功能适用性

Laravel 适用于 OceanBase 数据库 MySQL 模式。

Laravel 是一个优雅的 PHP Web 开发框架，其内置的 Eloquent ORM 提供了简洁的 ActiveRecord 实现，使数据库操作变得简单直观。

本文将介绍如何使用 Laravel Eloquent ORM 连接 OceanBase 数据库，实现创建表、插入数据和查询数据等基本操作。

## 前提条件

- 您已安装 PHP 8.0 或更高版本。
 - 您已安装 Composer 包管理工具。
 - 您已安装 OceanBase 数据库并且创建了 MySQL 模式租户。
 - 您已获取 OceanBase 数据库连接串。

## 操作步骤

1. 获取 OceanBase 数据库连接串
 2. 创建 Laravel 项目并安装依赖
 3. 配置数据库连接
 4. 创建模型和控制器
 5. 编写数据库操作代码
 6. 运行程序并验证结果

### 步骤一：获取 OceanBase 数据库连接串

联系 OceanBase 数据库部署人员或者管理员获取相应的数据库连接串。

```shell
obclient -h$host -P$port -u$user_name -p$password -D$database_name

```

**参数说明：**

- `$host`：提供 OceanBase 数据库连接 IP。OceanBase 数据库代理（OceanBase Database Proxy，ODP）连接方式使用的是一个 ODP 地址；直连方式使用的是 OBServer 节点的 IP 地址。
 - `$port`：提供 OceanBase 数据库连接端口。ODP 连接的方式默认是 `2883`，在部署 ODP 时可自定义；直连方式默认是 `2881`，在部署 OceanBase 数据库时可自定义。
 - `$database_name`：需要访问的数据库名称。
 - `$user_name`：提供租户的连接账户。ODP 连接的常用格式：`用户名@租户名#集群名` 或者 `集群名:租户名:用户名`；直连方式格式：`用户名@租户名`。
 - `$password`：提供账户密码。

#### 注意

连接租户的用户需要拥有该数据库的 `CREATE`、`INSERT`、`UPDATE` 和 `SELECT` 权限。更多有关用户权限的信息，请参见 [MySQL 模式下的权限分类](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016100)。

更多连接串的信息，请参见 [通过 OBClient 连接 OceanBase 租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013251)。

**示例如下：**

```shell
obclient -hxxx.xxx.xxx.xxx -P2881 -utest_user001@mysql001 -p****** -Dtest

```

### 步骤二：安装 Laravel 和依赖

1. 使用 Composer 创建新的 Laravel 项目：

   ```bash
   composer create-project laravel/laravel laravel-oceanbase
   cd laravel-oceanbase

   ```
 2. 验证安装：

   ```bash
   php artisan --version

   ```

### 步骤三：配置数据库连接

编辑 `config/database.php` 文件，配置 MySQL 连接选项：

```php
'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '2881'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
],

```

### 步骤四：创建模型和控制器

1. 创建用户模型 `app/Models/User.php`：

   ```php
   <?php

   namespace App\Models;

   use Illuminate\Database\Eloquent\Model;
   use Illuminate\Support\Facades\Schema;

   class User extends Model
   {
       protected $table = 'users';

       protected $fillable = ['username', 'email', 'age'];

       /**
        * 创建用户表
        */
       public static function createTable()
       {
           if (!Schema::hasTable('users')) {
               Schema::create('users', function ($table) {
                   $table->id();
                   $table->string('username', 100);
                   $table->string('email', 100)->unique();
                   $table->integer('age')->nullable();
                   $table->timestamps();
               });

               return true;
           }
           return false;
       }
   }

   ```

### 步骤五：编写数据库操作代码

1. 创建控制器 `app/Http/Controllers/UserController.php`：

   namespace App\Http\Controllers;

   use App\Models\User;
   use Illuminate\Http\Request;

   class UserController extends Controller
   {
       // 创建用户表
       public function __construct()
       {
           User::createTable();
       }

       // 创建用户
       public function create(Request $request)
       {
           $user = User::create([
               'username' => $request->input('username'),
               'email' => $request->input('email'),
               'age' => $request->input('age'),
           ]);

           return response()->json($user);
       }

       // 查询用户
       public function show($id)
       {
           $user = User::findOrFail($id);
           return response()->json($user);
       }

       // 更新用户
       public function update(Request $request, $id)
       {
           $user = User::findOrFail($id);
           $user->update([
               'username' => $request->input('username', $user->username),
               'email' => $request->input('email', $user->email),
               'age' => $request->input('age', $user->age),
           ]);

       // 删除用户
       public function delete($id)
       {
           $user = User::findOrFail($id);
           $user->delete();

           return response()->json(['message' => '用户删除成功']);
       }

       // 查询所有用户
       public function index()
       {
           $users = User::all();
           return response()->json($users);
       }
   }

   ```
 2. 添加路由 `routes/api.php`：

   use Illuminate\Support\Facades\Route;
   use App\Http\Controllers\UserController;

   // 手动添加 /api 前缀
   Route::prefix('api')->group(function () {
       Route::get('/users', [UserController::class, 'index']);
       Route::post('/users', [UserController::class, 'create']);
       Route::get('/users/{id}', [UserController::class, 'show']);
       Route::put('/users/{id}', [UserController::class, 'update']);
       Route::delete('/users/{id}', [UserController::class, 'delete']);
   });

   ```
 3. 修改 `app/Providers/AppServiceProvider.php` 文件：

   namespace App\Providers;

   use Illuminate\Support\ServiceProvider;

   class AppServiceProvider extends ServiceProvider
   {
       /**
       * Register any application services.
       */
       public function register(): void
       {
           //
       }

       /**
       * Bootstrap any application services.
       */
       public function boot(): void
       {
           //$this->loadRoutesFrom(base_path('routes/api.php'));
       }
   }

   ```

### 步骤六：运行程序并验证结果

1. 启动开发服务器：

   ```bash
   php artisan serve

   ```
 2. 使用 API 工具（如 Postman）测试以下接口：

      - `GET http://localhost:8000/api/users` - 获取用户列表
      - `POST http://localhost:8000/api/users` - 创建新用户
      - `GET http://localhost:8000/api/users/1` - 获取指定用户
      - `PUT http://localhost:8000/api/users/1` - 更新用户
      - `DELETE http://localhost:8000/api/users/1` - 删除用户

## 相关文档

- [Laravel 数据库文档](https://laravel.com/docs/database)
 - [Laravel Eloquent ORM](https://laravel.com/docs/eloquent)
 - [OceanBase 数据库文档](https://www.oceanbase.com/docs/enterprise/oceanbase-database-cn)
 - [PHP 官方文档](https://www.php.net/manual/zh/)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
