Laravel是微信小程序后端首选框架,需完成环境配置、数据库初始化和微信字段适配三步:用Composer创建项目并生成密钥;配置远程MySQL数据库及专用用户;在users表迁移中添加微信相关字段并执行迁移;安装EasyWeChat SDK,配置小程序AppID与Secret,创建登录控制器处理code换取openid与session_key,并实现用户查询或创建。

微信小程序需要一个能处理登录、用户资料、数据接口的后端服务,Laravel 因其路由清晰、Eloquent ORM 强大、生态成熟,成为首选框架;但新手常卡在环境配置、数据库初始化、微信字段适配这三步,导致小程序前端调用接口时返回 500 或空数据。
安装 Laravel 并初始化项目
用 Composer 创建新项目,不带开发依赖,避免上线后因 dev 包引发兼容问题。
执行命令:composer create-project laravel/laravel weapp-backend --no-dev
进入项目目录:cd weapp-backend
生成应用密钥:php artisan key:generate —— 【这一步必须执行,否则 session 和加密功能全部失效】
配置数据库连接与远程访问权限
先登录远程 MySQL 服务器(非本地 localhost):
① SSH 连接:ssh root@218.45.23.456
② 登录 MySQL:mysql -u root -p,输入密码后进入交互界面
③ 创建数据库:CREATE DATABASE weapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
④ 创建专用用户并授权:CREATE USER 'weapp_user'@'%' IDENTIFIED BY 'StrongPass2026!'; GRANT ALL ON weapp_db.* TO 'weapp_user'@'%'; FLUSH PRIVILEGES; —— 【务必用 % 而非 localhost,小程序后端通常部署在独立服务器,需允许任意 IP 连接】
⑤ 修改 .env 文件中的数据库配置:
DB_CONNECTION=mysqlDB_HOST=218.45.23.456DB_PORT=3306DB_DATABASE=weapp_dbDB_USERNAME=weapp_userDB_PASSWORD=StrongPass2026!
添加微信用户字段并迁移数据库
打开 database/migrations/*_create_users_table.php,在 up() 方法中,在 $table->timestamps(); 前插入以下字段定义:
$table->string('weapp_openid')->nullable()->index();
$table->string('weapp_session_key')->nullable();
$table->string('nickname')->nullable();
$table->string('weapp_avatar')->nullable();
$table->string('gender')->nullable(); // 微信传的是 'male'/'female'/'unknown',不用 enum
$table->string('country')->nullable();
$table->string('province')->nullable();
$table->string('city')->nullable();
$table->string('language')->nullable();
$table->json('location')->nullable();
运行迁移:php artisan migrate —— 若提示 “Base table or view not found”,说明未执行上一步或数据库名写错。
安装 EasyWeChat 并配置小程序支持
方法一:使用 Composer 安装官方 SDK
执行:composer require "overtrue/wechat:^6.0"
方法二:若项目已启用 Laravel Package Discovery(Laravel ≥5.5),无需手动注册服务提供者;否则需在 config/app.php 的 providers 数组末尾添加:
Overtrue\LaravelWeChat\ServiceProvider::class,
然后发布配置文件:php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"
编辑生成的 config/wechat.php,找到 'mini_program' 配置块,填入你在微信公众平台获取的 AppID 和 AppSecret:
'app_id' => env('WECHAT_MINI_PROGRAM_APPID', ''),'secret' => env('WECHAT_MINI_PROGRAM_SECRET', ''),
最后在 .env 中补全:
WECHAT_MINI_PROGRAM_APPID=wx1234567890abcdefWECHAT_MINI_PROGRAM_SECRET=your_mini_program_secret_here
创建小程序登录认证控制器
生成控制器:php artisan make:controller Api/WeappAuthController
编辑该文件,在 store() 方法中写入标准登录逻辑:
接收前端传来的 code → 调用 EasyWeChat 获取 openid 和 session_key → 查询或创建用户 → 返回 token 或用户信息。
关键代码片段(不需完整复制,仅示意核心流程):
$app = app('wechat.mini_program');
$response = $app->auth->session($request->code); // 注意:code 来自 wx.login()
if (!$response->has('openid')) { return response()->json(['message' => 'code 无效'], 401); }
$user = User::firstOrCreate(['weapp_openid' => $response['openid']], [ 'weapp_openid' => $response['openid'], 'weapp_session_key' => $response['session_key'], 'nickname' => $request->nickname ?? null, 'weapp_avatar' => $request->avatar ?? null]);
在 routes/api.php 中添加路由:
Route::post('/weapp/login', [WeappAuthController::class, 'store']);


















