Modelimi normal bir gönderme düğmesiyle güncellemek için tipik bir Yii2 formum var. Yanında, silinecek herhangi bir fotoğraf varsa, görünen "Fotoğrafı sil" düğmesi var. Görüş parçası gibi görünüyor:Yii2 formundaki ek düğme, eylemini çağırmak yerine formu gönderir
<?= Html::submitButton('Save changes', ['class' => 'btn btn-primary', 'name' => 'edit-button']) ?>
<?php $image = isset($page->photo) ? $page->photo->getImageUrl() : null; ?>
<?php if (isset($image)): ?>
<?= Html::a('Delete photo', ['delete-image', 'lab' => $lab->id, 'kind' => $page->kind], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Do you really want to delete this photo?',
'method' => 'post'
],
]) ?>
<?php endif; ?>
orada Bu modele bağlı bir fotoğraftır ve bu iki düğme yanyana belirdiğinde, ikinci düğme kodunda 'method' => 'post'
bölümünü yorumlamak gerekir. Çünkü, eğer bunu yapmazsam, ikinci düğme ... lab/delete-image
rotasını çağırmak yerine formu (ilkindeki gibi) gönderiyor.
Bu, anlamadığım ilk şey. Tüm kod ya Gii tarafından oluşturulur ya da bazı Yii eğiticilerinden kopyalanır. Benim icadım bile değil ama yine de garip çalışır. Neyi kaçırıyorum? İçerdiği zaman
Öyle görünüyor, bu normal Html::a
bağlantı (sadece Heyecan Bootstrap tarafından şekillendirilen düğme gibi görünür, ama bir düğme hiç olmadığı kadar) form gönderme yerine eylemini çağırıyor, data-method="post"
niteliğini öğe kodunda. Bu Yii2'deki bir hata mı yoksa bir şey mi özlüyorum?
Bu sorunun ikinci kısmını kaldırdık tarafından kodlanmış olacaktır. VerbFilter, çift sözcük eylemi adları için 'delete-image',' deleteImage' değil eylem adı olarak kullanılmalıdır. – trejder