Php YII2如何根据登录用户类型处理条件?

Php YII2如何根据登录用户类型处理条件?,php,yii2,Php,Yii2,vendorinfo.php我必须根据登录用户类型隐藏和显示按钮。这里,如果登录用户是“访问者”,则在任何情况下仅显示分级按钮,例如,可能是用户是管理员,或者现在任何没有登录条件的用户也在那里。 如果usertype是“Visitor”或“Admin”,那么我的代码是有效的,但当没有人登录时,它会失败。其实那个时候这个条件无法得到用户的类型,请帮助我我无法理解如何处理这个条件 <?php if(!\Yii::$app->user->isGuest) { $user = \Yii

vendorinfo.php我必须根据登录用户类型隐藏和显示按钮。这里,如果登录用户是“访问者”,则在任何情况下仅显示分级按钮,例如,可能是用户是管理员,或者现在任何没有登录条件的用户也在那里。 如果usertype是“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>

$(文档).ready(函数(){
var userType=document.getElementById('userType')。值;
如果(userType='Visitor'){
$('#divUserRate').show();
}否则{
$('#divUserRate').hide();
}
});

您可以使用用户模型中的
isGuest
属性

echo (Yii::$app->user->isGuest) ? '<div>Div if user is visitor</div>' : '<div>Div if user is not visitor</div>';

对于隐藏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>

$(文档).ready(函数(){
$('.btnRating').hide();
$('#divliveventGallery').hide();
var userType=document.getElementById('userType')。值;
如果(userType='Visitor'| | userType=='FB'| | userType=='GL'){
$('.btnRating').show();
}如果(userType='Vendor'){
$('.btnRating').hide();
}else if(userType==“”){
$('.btnRating').hide();
}
});
**************按钮html**************
回声';
回音“速率”;
回声';

我不明白这个标签里到底放了什么,你能解释我用我的Javascript把它替换成你的输入标签吗?”。它的PHP不是JS。但是..帮我想想我的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>