在 Smarty 模板中显示基于数组变量的字符串

Displaying string based on array variable in a Smarty template

大家好想显示用户的角色她是我的代码

if (isset($_SESSION['loggeduser_id']) && $_SESSION['loggeduser_id'] > 0)  {
$loggeduser_id = $_SESSION['loggeduser_id'];
}
if ($loggeduser_id > 0) {

$user = new user();
$role = $user->getrole($loggeduser_id);
$smarty->assign("role",$role);
}

当我输入 var_dump($role);

它告诉我

array(2) {
[0]=>
string(3) "vip"
["role"]=>
string(3) "vip"
}

所以我想在 tpl 页面的用户个人资料中显示 class 如果是 vip 用户我尝试这样做但它不起作用

{if $role eq vip}<span class="user-vip-icon"></span>{/if}

你能帮帮我吗

假设您将 $role 作为数组并且 $role 包含数组("vip", "vip"); 所以这应该有效

$role = array("vip", "vip"); // Your ROle
if (in_array("vip", $role)) {
    echo '<span class="user-vip-icon"></span>';
}

if ($role['role'] == "vip") {
    echo '<span class="user-vip-icon"></span>';
}

或 Smarty 模板代码

{if $role['role'] == 'vip'}<span class="user-vip-icon"></span>{/if}

谢谢大家帮助我 我找到了解决办法 我只是做到了

$smarty->assign("role",$role["role"]); 而不是 $smarty->assign("role",$role);

我把它放在模板中 {if $role eq 'vip'}<span class="user-vip-icon"></span>{/if}