docs: 强化经验#4 — 插件视图路径 view/{group}/ 结构图解,防止 admin/view/ vs view/admin/ 顺序颠倒
parent
51bcc207fb
commit
6fae406982
|
|
@ -67,7 +67,7 @@ if (!empty($category['is_enable']))
|
||||||
|
|
||||||
## 🟡 P1 — 严重问题
|
## 🟡 P1 — 严重问题
|
||||||
|
|
||||||
### 4. 插件视图路径:必须用 `../../../plugins/插件名/view/...`
|
### 4. 插件视图路径:`../../../plugins/插件名/view/{group}/controller/action`
|
||||||
|
|
||||||
ShopXO 插件控制器继承 `app\admin\controller\Common` 后,模板引擎默认去找 `app/admin/view/default/` 而非插件目录。
|
ShopXO 插件控制器继承 `app\admin\controller\Common` 后,模板引擎默认去找 `app/admin/view/default/` 而非插件目录。
|
||||||
|
|
||||||
|
|
@ -75,11 +75,39 @@ ShopXO 插件控制器继承 `app\admin\controller\Common` 后,模板引擎默
|
||||||
// ❌ 错误:引擎截断路径
|
// ❌ 错误:引擎截断路径
|
||||||
return MyView('venue/list');
|
return MyView('venue/list');
|
||||||
|
|
||||||
// ✅ 正确:跨模块绝对路径
|
// ❌ 错误:路径片段顺序颠倒(admin/view/ vs view/admin/)
|
||||||
return MyView('../../../plugins/vr_ticket/view/venue/list');
|
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