143 lines
3.2 KiB
Markdown
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 修复
|
|
- **状态**: ✅ 完成
|
|
|
|
---
|
|
|
|
**修复完成** ✅
|