` 里。而条目详情浮层点「编辑」时, * 需要**单独取这份表单**(`tasks/edit?embed=1`)—— 不可能去详情页里抠。 * 抽成一份后,详情页与浮层用的是**同一张表单**,不会出现"两处字段不一致"。 * * ⚠️ 字段名 / 服务端契约与原来**一字未改**(tasks/update 收的就是这些)。 * ⚠️ 「状态」不在这里改:状态由专门的 `tasks/status` 路由管(它还要处理循环任务), * 文案里也说明了这一点(与 v24 第 14 批的口径一致)。 * * 🔴🔴 **本片段一律用带前缀的局部变量(`$tk*`),绝不碰入参的名字。** * 第一版写的是 `$t = is_array($t ?? null) ? $t : [];` —— 看似无害,其实是在 * **覆盖宿主模板的 `$t`**(那是"这条任务"本身)。只读一次没问题, * 但下一个人只要把某个 `$tk*` 改回 `$t`(很自然)就会让详情页后半段的 * `$t['children']` / 评论区全是 null —— **而且是静默的**。 * 项目的"片段体检"(`_fb_frag_guard`)当场抓到了这处裸赋值,是对的。 * ⇒ 入参先**收进 `$tkT`**,后面全用它。 * * 用法(include 前设好): * $t 任务(Task::find 的形状) * $people 名册 * $parents 可选父任务候选 * $categories / $boards 分类与看板 * $tkEditEmbed 是否"浮层形态"(true = 不输出自己的「保存」,由浮层底栏给) */ $tkT = is_array($t ?? null) ? $t : []; $tkPeople = (array)($people ?? []); $tkParents = (array)($parents ?? []); $tkCats = (array)($categories ?? []); $tkBoards = (array)($boards ?? []); $tkEmbed = !empty($tkEditEmbed); ?>
任务名称*
截止时间
负责人
循环
父任务
分类
看板
备注