Files
zyt/admin/ORDER_BUGFIX_ADMIN_CLASS.md
T
2026-03-11 14:33:49 +08:00

143 lines
3.2 KiB
Markdown

# 订单系统 - Admin 类错误修复
## 问题描述
订单列表查询时报错:`Class "app\common\model\admin\Admin" not found`
## 根本原因
Order 模型中的 creator 关系指向了错误的 Admin 类路径:
- ❌ 错误: `app\common\model\admin\Admin`
- ✅ 正确: `app\common\model\auth\Admin`
## 修复内容
### 1. 修复 Order 模型中的 creator 关系
**文件**: `server/app/common/model/Order.php`
```php
// 修复前
public function creator()
{
return $this->belongsTo('app\common\model\admin\Admin', 'creator_id', 'id');
}
// 修复后
public function creator()
{
return $this->belongsTo('app\common\model\auth\Admin', 'creator_id', 'id');
}
```
### 2. 修复 OrderLists 中的表名
**文件**: `server/app/adminapi/lists/order/OrderLists.php`
患者搜索时使用了错误的表名:
- ❌ 错误: `table('user')`
- ✅ 正确: `table('la_user')`
```php
// 修复前
$query->table('user')
->where('nickname|mobile', 'like', '%' . $this->params['patient_keyword'] . '%')
->field('id');
// 修复后
$query->table('la_user')
->where('nickname|mobile', 'like', '%' . $this->params['patient_keyword'] . '%')
->field('id');
```
### 3. 增强错误处理
**文件**: `server/app/common/model/Order.php`
在获取器中添加异常处理,防止关系加载失败导致整个查询失败:
```php
// 获取器-患者名称
public function getPatientNameAttr($value, $data)
{
if ($value) {
return $value;
}
try {
$patient = $this->patient()->find();
return $patient ? $patient->nickname : '';
} catch (\Exception $e) {
return '';
}
}
// 获取器-患者电话
public function getPatientPhoneAttr($value, $data)
{
if ($value) {
return $value;
}
try {
$patient = $this->patient()->find();
return $patient ? $patient->mobile : '';
} catch (\Exception $e) {
return '';
}
}
// 获取器-创建人名称
public function getCreatorNameAttr($value, $data)
{
if ($value) {
return $value;
}
try {
$creator = $this->creator()->find();
return $creator ? $creator->name : '';
} catch (\Exception $e) {
return '';
}
}
```
## 修复的文件
1.`server/app/common/model/Order.php`
- 修复 creator 关系路径
- 增强获取器错误处理
2.`server/app/adminapi/lists/order/OrderLists.php`
- 修复 lists() 方法中的表名
- 修复 count() 方法中的表名
## 验证
修复后,订单列表查询应该正常工作:
- ✅ 订单列表加载成功
- ✅ 患者信息正确显示
- ✅ 创建人信息正确显示
- ✅ 患者关键词搜索正常
## 测试步骤
1. 访问订单列表页面
2. 验证订单数据正确加载
3. 验证患者信息显示
4. 验证创建人信息显示
5. 测试患者关键词搜索
## 相关文件
- `server/app/common/model/Order.php` - 订单模型
- `server/app/adminapi/lists/order/OrderLists.php` - 订单列表
- `server/app/common/model/auth/Admin.php` - Admin 模型(正确位置)
- `server/app/common/model/user/User.php` - User 模型
## 版本信息
- **修复版本**: 1.1.1
- **修复日期**: 2026-03-10
- **修复类型**: Bug 修复
- **状态**: ✅ 完成
---
**修复完成**