0; // 显示名一律走「我怎么称呼他」:同一个孩子,爸爸看到"儿子"、妈妈看到"小宝"。 // ⚠️ 用**已经取好的那张表**(target_id => 我叫他什么)做本地查表, // 不要再对每个人调一次 Nickname::display() —— 那是每人一条 SQL。 // 没有称呼的人回落到姓名,所以永远不会出现空白名字。 $shownOf = function (array $row) use ($myNicknames): string { $nk = (string)($myNicknames[(int)($row['id'] ?? 0)] ?? ''); return $nk !== '' ? $nk : (string)($row['name'] ?? ''); }; // 有亲属关系 → 只显示家人;还没建 → 退回显示全名册,别让首页空着 $list = $hasRel ? $kin : []; if (!$list) { foreach (\App\Person::all((int)\App\Auth::familyId(), '', 'member', (int)$meId) as $p) { $p['label'] = ''; $list[(int)$p['id']] = $p; } } // 生日事件上用简称,卡片才不会一行塞不下;长名字在详情页里出 $shortKind = ['id' => '身份证生日', 'solar' => '阳历生日', 'lunar' => '农历生日']; ?>

与我有关
名册总数
亲属连线

接下来的日子 两个月内

就是今天,生日快乐 还有 天过生日
农历

先把家人连起来 目前还没有任何亲属关系,所以下面显示的是整个名册。
到自己的资料页填上「谁是我的父母、配偶、子女」,之后这一页就只显示跟你有关的人, 每个人的称呼也会按你的视角来算。
名册还是空的 先把家里人加进来,之后他们就能出现在每一条记录里。
我 待确认
管理员'; } elseif ($role === 'guest') { echo '访客'; } elseif (!empty($p['account_id'])) { echo '已开通'; } $age = age_from(\App\Birthday::solarOf($p)); if ($age !== null) { echo ' · ' . (int)$age . ' 岁'; } ?>