[英]YII2 how to handle condition as per login usertype?
vendorinfo.php我必须根据登录用户类型隐藏并显示按钮。如果登录用户是“访问者”,则仅在任何情况下(例如,如果用户是admin或现在没有登录条件的任何用户)显示评分按钮。 如果用户类型为“ Visitor”或“ Admin”,我的代码将正常工作,但是如果没有人登录,它将失败。 其实那个时候这种情况无法得到用户的类型。为此,请帮我,我不明白如何处理这种情况。
<?php
if(!\Yii::$app->user->isGuest) {
$user = \Yii::$app->user->identity->id;
$userType = \Yii::$app->user->identity->type;
echo ''.$userType;
echo '<input type="text" value='.$userType.' id="usertype"/>';
} else {
echo '<div>Div if user is not visitor</div>';
}
?>
脚本:隐藏和显示div的脚本
<script type="text/javascript">
$(document).ready(function(){
var userType= document.getElementById('usertype').value;
if(userType == 'Visitor') {
$('#divUserRate').show();
} else {
$('#divUserRate').hide();
}
});
</script>
您可以从用户模型使用isGuest
属性。
echo (Yii::$app->user->isGuest) ? '<div>Div if user is visitor</div>' : '<div>Div if user is not visitor</div>';
您还可以使用Rbac来管理角色和访问。
if(Yii::$app->authManager->checkAccess(Yii::$app->user->id, "editor"){
//do something
}
对于隐藏div。我在按钮中添加了类,然后隐藏该类而不是div
<script type="text/javascript">
$(document).ready(function(){
$('.btnRating').hide();
$('#divliveventGallery').hide();
var userType= document.getElementById('usertype').value;
if(userType == 'Visitor' || userType == 'FB' || userType == 'GL') {
$('.btnRating').show();
} else if(userType == 'Vendor'){
$('.btnRating').hide();
} else if(userType == "") {
$('.btnRating').hide();
}
});
**************Button html**************
echo '<button type="button" id="btnRate" onClick="rateDetail('.$dp['ven_id'].','.$userId.');" class=" btnRating btn btn-default btn-block" data-toggle="modal" data-target="#rcrate">';
echo '<strong>Rate</strong>';
echo '</button> ';
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.