我尝试在用户未登录时停用创建项目 Button
,按钮将Hide
或disable
。
这是我的条件:
<p>
<?php
if (Yii::$app->user->isGuest) {
Html::a('Create a Project', ['create'], ['class' => 'btn btn-primary btn-xs']);
} elseif(Yii::$app->user->identity->username) {
Html::a('Create a Project', ['create'], ['class' => 'btn btn-success']);
}
?>
</p>
它正常工作,但是,当用户登录时,按钮已经隐藏了!
如何在Yii2中禁用或隐藏按钮并解决该问题?
有关于此的任何教程吗?
答案 0 :(得分:4)
您需要添加disabled
属性来禁用该按钮,或者完全隐藏它,您可以使用CSS style=display: none;
两者都在下面的代码中使用
<p>
<?php
if (Yii::$app->user->isGuest) {
// This button will be displayed, but is disabled
Html::a('Create a Project', ['create'], ['class' => 'btn btn-primary btn-xs', 'disabled' => 'disabled']);
} elseif(Yii::$app->user->identity->username) {
Html::a('Create a Project', ['create'], ['class' => 'btn btn-success']);
} else {
// This button will not be displayed (it is hidden)
Html::a('Create a Project', ['create'], ['class' => 'btn btn-primary btn-xs', 'style' => 'display: none;']);
}
?>
</p>
答案 1 :(得分:2)
如果您只是在用户中检查logged
,请使用!Yii::$app->user->isGuest
并忘记echo
:
if (!Yii::$app->user->isGuest) {
echo Html::a('Create a Project', ['create'], ['class' => 'btn btn-primary btn-xs'])
}
答案 2 :(得分:2)
首先,您无法禁用disabled
标记。 Button
属性在<?= Html::Button('Project', ['class' => 'btn btn-success', 'disabled' => Yii::$app->user->isGuest ]) ?>
标记上正常工作,例如:
a
如果您确实要禁用<a id="a1" href="http://www.google.com">Google 1</a>
标记,则可以使用此示例:
<强> HTML:强>
$('#a1').attr('disabled', 'disabled');
$('a').on('click', function(e) {
if ($(this).attr('disabled') == 'disabled') {
e.preventDefault();
}
});
<强>使用Javascript:强>
<div i="button" class="ui-dialog-button">
<button type="button" i-id="logout-ok">确定</button>
<button type="button" i-id="logout-cancel" class="cancel">取消</button></div>
答案 3 :(得分:-1)
尝试以下代码:
<?= Html::a('Create a Project', ['create'],['class' =>'btn btn-primary disabled']); ?>