如果用户未登录,如何禁用按钮?

时间:2018-01-19 07:42:44

标签: php yii2

当前代码(不起作用)

    <?php echo Html::submitButton('', ['name' => 'action',
'value' => 'minus', !Yii::$app->user->isGuest ? 'disabled' => 'disabled' : ''])

如果用户是访客,如何禁用按钮?

4 个答案:

答案 0 :(得分:1)

试试这个:

<?php 
    $attribs = (!Yii::$app->user->isGuest ?  ['name' => 'action', 'value' => 'minus', 'disabled' => 'disabled'] :  ['name' => 'action', 'value' => 'minus']); 
    echo  Html::submitButton('',$attribs); 
?>

答案 1 :(得分:0)

你可以使用像null这样的假值和array_filter一起使用,默认情况下会删除数组中的任何虚假项目(如果你不提供回调):

<?php 
    echo Html::submitButton('',array_filter([
        'name' => 'action',
        'value' => 'minus', 
        'disabled' => Yii::$app->user->isGuest ? "disabled" : null
    ])); 
?>

修改

如#34; Sam&#34;在评论中,如果值为false,Yii框架将自动省略属性 - 或者将属性键指定为值(即disabled="disabled"),如果它是trueTake a look in the source to see how this works。这最终会产生更清晰的代码:

<?php 
    echo Html::submitButton('', [
        'name' => 'action',
        'value' => 'minus', 
        'disabled' => Yii::$app->user->isGuest
    ]); 
?>

答案 2 :(得分:0)

<强>答案:

<?php echo Html::submitButton('', ['name' => 'action',
'value' => 'minus']  + (Yii::$app->user->isGuest ? ['disabled' => 'disabled'] : []))

答案 3 :(得分:0)

Yii2内置了对布尔属性的支持:https://github.com/yiisoft/yii2/blob/master/framework/helpers/BaseHtml.php#L1890

所以你应该这样做:

Html::submitButton('', ['name' => 'action', 'disabled' => !\Yii::$app->user->isGuest]);
相关问题