web-dev-qa-db-fra.com

bouton yii2 avec lien

J'essaie d'installer un bouton avec un lien vers une vue. Cependant, yii/bootstrap/Button ne possède pas de propriété 'url'. Je préférerais utiliser yii comme étant supposé utiliser php à plat. Le code ci-dessous serait la situation idéale, mais comme l'option "url" n'existe pas, existe-t-il un autre moyen de résoudre ce problème en utilisant yii?

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

Vous pouvez simplement utiliser Html :: a () :

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

Ou créez votre propre version de la classe Button pour gérer cela.

PS: vous n'avez pas besoin de Url::toRoute

56
soju

Vous pouvez essayer ceci:

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
Federico Benedetti

vous pouvez également passer le paramètre à l'URL

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

Vous pouvez également rendre le code HTML 

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

Pour moi ça marche:

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

Donc, utilisez ['value'=> Url::to(),] au lieu de ['url' => ...]

1
BartT

Si vous voulez que le nom de votre étiquette ou votre bouton ait des traductions

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

Si vous voulez ajouter une icône pour ce lien

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

si vous voulez passer des paramètres

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