当前代码(不起作用)
<?php echo Html::submitButton('', ['name' => 'action',
'value' => 'minus', !Yii::$app->user->isGuest ? 'disabled' => 'disabled' : ''])
如果用户是访客,如何禁用按钮?
答案 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"
),如果它是true
。 Take 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]);