1、表字段名称为小写字母加下划线的形式。如图1

2、接口基于 GraphQL 实现,规范为接口响应的字段名称需为驼峰形式。
type ThemeAsset
{
"ID"
id: ID!
"主题ID"
themeId: String!,
"版本"
version: String!,
"内容"
content: String,
"路径,相对于主题的路径,如 ages/index.blade.php"
key: String!,
"MIME 类型"
mimeType: String!,
"类别,page、component、config(仅这3种类型有配置),asset、unknown"
category: String!,
"主题的 Schema,包括页面、主题、组件"
schema: String,
"创建时间"
createdAt: DateTime!
"更新时间"
updatedAt: DateTime
}
3、打印解析器 /Modules/ThemeStore/Resolver/OnlineStoreTheme/ThemeAssetsResolver.php 方法中的 $themeAssets,对象属性名称为小写字母加下划线的形式。如图2

<?php
namespace Modules\ThemeStore\Resolver\OnlineStoreTheme;
use Nuwave\Lighthouse\Support\Contracts\GraphQLContext;
use GraphQL\Type\Definition\ResolveInfo;
use Modules\ThemeStore\Entities\ThemeAsset;
class ThemeAssetsResolver
{
public function __invoke($rootValue, array $args, GraphQLContext $context, ResolveInfo $resolveInfo)
{
$themeId = $rootValue['themeAssets']['theme_id'];
$themeAssets = ThemeAsset::where('theme_id', $themeId)->get();
print_r($themeAssets);
exit;
}
}4、方案一为将 $themeAssets 进行 foreach 遍历,重新赋值给一个新的数组,在此数组中设置键名为驼峰形式。方案二为在 select 查询语句中重命名字段名为驼峰形式。最终决定采纳方案二。
public function __invoke($rootValue, array $args, GraphQLContext $context, ResolveInfo $resolveInfo)
{
$themeId = $rootValue['themeAssets']['theme_id'];
$themeAssets = ThemeAsset::where('theme_id', $themeId)
->select(
'id',
'theme_id as themeId',
'version',
'content',
'asset_key as key',
'mime_type as mimeType',
'category',
'schema',
'created_at as createdAt',
'updated_at as updatedAt'
)
->get();
return $themeAssets;
}
5、请求接口,响应字段名为驼峰形式。符合预期。如图3

6、查看日志中的生成的原生 SQL 语句。如图4

select
`id`,
`theme_id` as `themeId`,
`version`,
`content`,
`asset_key` as `key`,
`mime_type` as `mimeType`,
`category`,
`schema`,
`created_at` as `createdAt`,
`updated_at` as `updated_at`
from
`theme_asset`
where
`theme_id` = 'vogue'
PHP / Laravel / Yii2 老项目维护与长期技术支持
如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。
适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护
可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查
如需咨询,请联系我,并注明:PHP 维护咨询。
联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com
