簡體   English   中英

YII2如何根據登錄用戶類型處理條件?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM