webentwicklung-frage-antwort-db.com.de

yii2 button mit link

Ich versuche, eine Schaltfläche mit einem Link zu einer Ansicht einzurichten. yii/bootstrap/Button besitzt jedoch keine Eigenschaft 'url'. Ich würde lieber yii verwenden, als soll es nur flacher PHP sein. Der folgende Code wäre die ideale Situation, aber da die Option 'url' nicht existiert, gibt es eine andere Möglichkeit, dies mit yii zu beheben?

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

Sie können einfach Html :: a () verwenden:

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

Oder erstellen Sie eine eigene Version der Button-Klasse, um dies zu handhaben.

PS: Du brauchst keinen Url::toRoute

56
soju

Sie können dies versuchen:

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'),
                    ]
                )
3

sie können Parameter auch an URL übergeben

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

Sie können das HTML auch rendern 

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

Für mich arbeitet:

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

Verwenden Sie also ['value'=> Url::to(),] anstelle von ['url' => ...]

1
BartT

Wenn Sie möchten, dass Ihr Markenname oder Ihre Schaltfläche Übersetzungen enthält

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

Wenn Sie ein Symbol für diesen Link hinzufügen möchten

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

wenn Sie Parameter übergeben wollen

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