data-initials="= e(trim(\App\Pinyin::initials($pReal) . ' ' . \App\Pinyin::initials($pNick))) ?>">
。
① 现有的 e2e 断言就是按这个形状读「这一行显示的是谁」
(person_names():只认
内的第一段文本)——
包一层 span 会让它读到空串,6 条断言齐刷刷变红,
而页面看着完全正常(这种"改样式把测试打挂"最难查);
② 包起来也没有任何用处:.pname 本身已经带字重与字号,
下面的关系标签/徽标都在姓名**之后**,不需要靠 span 定位。 */ ?>
= e($pshow) ?>
= e($p['label']) ?>
>= e($b) ?>
都不画** —— 留一个空标签只会让每行都长一截。
// 用户 2026-10-04 第 3 条:生日**阴历阳历都列**,且只显示月和日(不显示年)。
$facts = [];
if (($p['phone_plain'] ?? '') !== '') {
$facts[] = ['手机', (string)$p['phone_plain']];
}
foreach ((array)($p['birthdays'] ?? []) as [$bk, $bv]) {
$facts[] = [(string)$bk, (string)$bv];
}
if (trim((string)($p['email'] ?? '')) !== '') {
$facts[] = ['邮箱', (string)$p['email']];
}
if (trim((string)($p['org'] ?? '')) !== '') {
$facts[] = ['单位', (string)$p['org']];
}
?>
= e($k) ?>= e($v) ?>
,且必须在 person-main 这个
**外面**
—— a 套 a 是非法 HTML,浏览器会把 DOM 拆开。 */ ?>
编辑
家庭名册
(加 data-roster-total 供 JS 定位)。
v28:原来后面跟着「,分 6 个关系分组」—— 分组已成标签,
改成说"打了几个标签"(情报更贴近新模型)。 */ ?>
共 = $total ?> 人= $tagCloud && $q === '' ? ',有 ' . count($tagCloud) . ' 个标签' : '' ?>
没有匹配的人。
没有匹配的人
换个词试试。
0): ?>
你的名册还是空的
家里已经有 = (int)$pickable ?> 个人了 —— 直接挑过来就行,不用重新录一遍。
名册还是空的
把家里人加进来,之后观影、旅行的同行人就可以直接从名册里选。
等家里人把你加进来,或者让管理员给你开个账号。