好的,這個問題非常典型。在 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://m.www9463.cn/xinwendongtai/2096.html
版權聲明:站內所有文章皆來自網絡轉載,只供模板演示使用,并無任何其它意義!