docs: 强化经验#4 — 插件视图路径 view/{group}/ 结构图解,防止 admin/view/ vs view/admin/ 顺序颠倒
parent
51bcc207fb
commit
6fae406982
|
|
@ -67,7 +67,7 @@ if (!empty($category['is_enable']))
|
|||
|
||||
## 🟡 P1 — 严重问题
|
||||
|
||||
### 4. 插件视图路径:必须用 `../../../plugins/插件名/view/...`
|
||||
### 4. 插件视图路径:`../../../plugins/插件名/view/{group}/controller/action`
|
||||
|
||||
ShopXO 插件控制器继承 `app\admin\controller\Common` 后,模板引擎默认去找 `app/admin/view/default/` 而非插件目录。
|
||||
|
||||
|
|
@ -75,11 +75,39 @@ ShopXO 插件控制器继承 `app\admin\controller\Common` 后,模板引擎默
|
|||
// ❌ 错误:引擎截断路径
|
||||
return MyView('venue/list');
|
||||
|
||||
// ✅ 正确:跨模块绝对路径
|
||||
return MyView('../../../plugins/vr_ticket/view/venue/list');
|
||||
// ❌ 错误:路径片段顺序颠倒(admin/view/ vs view/admin/)
|
||||
return MyView('../../../plugins/vr_ticket/admin/view/seat_template/list');
|
||||
// ↑ admin/view/ 是错的
|
||||
// 正确:view/admin/ ↓
|
||||
return MyView('../../../plugins/vr_ticket/view/admin/seat_template/list');
|
||||
```
|
||||
|
||||
**教训**:插件视图必须放在插件根目录的 `view/` 下(不是 `admin/view/`),且调用时加 `../../../plugins/插件名/view/...` 前缀。
|
||||
**ShopXO 插件视图目录结构**(必须严格遵守):
|
||||
|
||||
```
|
||||
app/plugins/vr_ticket/
|
||||
├── admin/ ← 控制器目录(PHP 类),不是视图目录!
|
||||
│ └── Admin.php
|
||||
├── view/ ← 视图文件根目录
|
||||
│ ├── admin/ ← 后台视图(group=admin)
|
||||
│ │ ├── seat_template/list.html
|
||||
│ │ ├── seat_template/save.html
|
||||
│ │ ├── ticket/list.html
|
||||
│ │ ├── verifier/list.html
|
||||
│ │ └── verification/list.html
|
||||
│ ├── goods/ ← C端商品页视图
|
||||
│ └── venue/ ← C端场馆视图
|
||||
```
|
||||
|
||||
**完整路径公式**:`../../../plugins/vr_ticket/view/{group}/{controller}/{action}`
|
||||
|
||||
| 场景 | group | 示例路径 |
|
||||
|------|-------|---------|
|
||||
| 后台管理 | `admin` | `../../../plugins/vr_ticket/view/admin/seat_template/list` |
|
||||
| C端前台 | `goods` | `../../../plugins/vr_ticket/view/goods/ticket_detail` |
|
||||
| C端场馆 | `venue` | `../../../plugins/vr_ticket/view/venue/list` |
|
||||
|
||||
**教训**:插件视图放在插件根目录的 `view/` 下(不是 `admin/view/`),路径公式 `../../../plugins/插件名/view/{group}/controller/action` 中的 `view/{group}/` 顺序不能颠倒。
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue