[英]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.