好的,这个问题非常典型。在 EyouCMS 内容详情页(show.Html)无法调用会员昵称和手机号,通常是因为 “当前登录的会员信息” 和 “当前文章的作者信息” 这两个概念被混淆了,或者没有正确的获取方式。下面我将详细解释原因,并提供几种解决方案。

在 EyouCMS 中,内容详情页的核心变量是 $list,它包含了当前文章的所有信息。但是,$list对象里默认不包含作者(会员)的敏感信息,如手机号,这是出于安全考虑。昵称可能在某些配置下可以调用。
问题的关键在于:您想调用的是当前文章作者的昵称和手机号,还是当前正在浏览网页的已登录会员的昵称和手机号?
场景A:调用文章作者的资料(例如:在文章末尾显示作者联系方式)
场景B:调用当前登录会员的资料(例如:显示“欢迎您,[昵称]”)
我们将分别针对这两种场景提供解决方案。
这是更常见的需求,比如在文章底部显示“本文作者:XXX,联系方式:XXX”。
EyouCMS 可能已经将作者的基本信息映射到了 $list变量中。请在您的 show.html模板中尝试调用以下代码来检查:
这会显示 $list变量的所有内容。寻找与作者相关的字段,通常是:
$list.author(作者笔名)
$list.users_id(作者的用户ID)
如果幸运的话,可能会有 $list.nickname,但基本不可能有 $list.mobile(手机号)。
这是最可靠的方法。我们通过文章的 users_id去查询会员表,获取该会员的详细信息。
在 show.html模板中需要调用作者信息的地方,使用 EyouCMS 的数据库查询类:
<?php
// 1. 获取当前文章的作者ID
$authorId = $list['users_id'];
// 2. 如果作者ID存在,则查询会员表
if (!empty($authorId)) {
$authorInfo = \think\Db::name('users') // 查询 users 表
->where('id', $authorId) // 条件:id 等于 作者ID
->field('nickname, mobile') // 要查询的字段:昵称和手机号
->find(); // 查询一条结果
// 3. 判断是否查询到结果,然后输出
if ($authorInfo) {
echo "本文作者昵称:" . $authorInfo['nickname'];
// 注意:手机号是敏感信息,请谨慎显示,例如部分打码
if (!empty($authorInfo['mobile'])) {
$mobile = $authorInfo['mobile'];
$safeMobile = substr($mobile, 0, 3) . '****' . substr($mobile, -4); // 138****8888
echo "联系方式:" . $safeMobile;
}
}
}
?>注意: 直接显示用户手机号可能涉及隐私问题,请务必谨慎,最好做打码处理或征得用户同意。
这个需求通常用于在页面顶部显示登录状态。
EyouCMS 会将已登录会员的信息存储在全局变量中,通常是 $users 或 $user。
在 show.html模板的顶部或任何需要的地方,使用以下代码:
{// 判断用户是否已登录}
{if isset($users) && !empty($users)}
<div class="user-info">
<p>欢迎您,{$users.nickname}!</p>
{//// 手机号同样是敏感信息,需要谨慎处理 ////}
{if !empty($users.mobile)}
<p>您的手机尾号是:{substr($users.mobile, -4)}</p>
{/if}
</div>
{else /}
<div class="user-info">
<a href="{:url('user/login/index')}">请登录</a>
</div>
{/if}关键点:
$users或 $user是系统为已登录会员预定义的全局变量。
你需要确认你的 EyouCMS 版本中使用的变量名是 $users还是 $user。可以尝试打印出来看看:{php} dump($users); {/php}
场景 | 你想要的信息来自 | 关键变量/方法 | 注意事项 |
|---|---|---|---|
文章作者信息 | 写这篇文章的人 | 1. 检查 | 手机号是敏感信息,需打码或授权。 |
当前登录会员信息 | 正在浏览网页的用户 | 使用全局变量 | 必须先判断用户是否已登录 ( |
排查流程:
确认需求: 你到底要显示谁的信息?(作者 vs 访客)
打印变量调试(最重要的一步): 在 show.html模板顶部附近加入以下代码,然后刷新页面查看输出结果,这是找到正确变量名的关键。
{php}
echo "<h4>当前文章信息 (\$list):</h4>";
dump($list);
echo "<h4>当前登录会员信息 (\$users):</h4>";
dump($users);
{/php}根据调试结果选择上述方法: 看到数据结构后,你就能清楚地知道该用哪个变量了。
安全处理: 如果涉及手机号等隐私信息,务必进行打码显示。
按照以上步骤,你应该能成功在内容页调用到所需的会员信息。如果打印出的变量为空,那说明当前没有登录信息或数据关联有问题,需要检查会员登录状态或文章的数据关联。
标签:
本文链接:http://www.7ov.cn/xinwendongtai/2096.html
版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!
下一篇:没有了