在Yii2中创建带链接的按钮

ggazkfy8  于 2022-11-09  发布在  其他
关注(0)|答案(5)|浏览(163)

我正在尝试设置一个带有视图链接的按钮。但是yii\bootstrap\Button没有属性url。我更愿意使用Yii,就像使用php一样。下面的代码是理想的情况,但是由于url选项不存在,有没有其他方法可以使用Yii来修复这个问题?

echo Button::Widget([
    'label' => 'label',
    'options' => ['class' => 'btn btn-primary'],
    'url' => Url::toRoute(['/controller/action']),
]);
yuvru6vn

yuvru6vn1#

您可以简单地使用Html::a():

<?= Html::a('label', ['/controller/action'], ['class'=>'btn btn-primary']) ?>

或者创建您自己的Button类版本来处理此问题。
PS:你不需要Url::toRoute

6bc51xsx

6bc51xsx2#

您还可以将参数传递给url

<?= Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>

您还可以呈现html

<?= Html::a('<span class="btn-label">Update</span>', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
klsxnrf1

klsxnrf13#

您可以尝试以下操作:

Html::button("<span class='glyphicon glyphicon-plus' aria-hidden='true'></span>",
                    ['class'=>'kv-action-btn',
                        'onclick'=>"window.location.href = '" . \Yii::$app->urlManager->createUrl(['/create','id'=>$model->id]) . "';",
                        'data-toggle'=>'tooltip',
                        'title'=>Yii::t('app', 'Create New Record'),
                    ]
                )
slhcrj9b

slhcrj9b4#

如果希望标签名称或按钮具有翻译

<?= Html::a(Yii::t('app','label'), ['/controller/action'], ['class'=>'pull-right', 'style' => 'padding-right:10px;']) ?>

如果要为此链接添加图标

<?= Html::a("<i class=\"fa fa-icon\"></i> ".Yii::t('app','label'), ['/controller/action'], ['class'=>'pull-right', 'style' => 'padding-right:10px;']) ?>

如果要传递参数

<?= Html::a(Yii::t('app','label'), ['/controller/action', id => $model->id], ['class'=>'pull-right', 'style' => 'padding-right:10px;']) ?>
piwo6bdm

piwo6bdm5#

对我来说很管用:

<?= Html::button('Press me!', ArrayHelper::merge(['value'=>Url::to(['controller/action'])], ['additionalOptions'])); ?>

因此,请使用['value'=> Url::to(),]而不是['url' => ...]

相关问题