Yii2: Pautan sebagai POST request

Yii2-anchor-post-request

Aku ada satu masalah. Kaedah penghantaran data menggunakan URI di dalam Yii2 agak berlainan berbanding cara konvensional PHP dan Laravel. Ada masa lain aku cerita kenapa. Maka aku rasa kaedah paling mudah untuk menyelesaikan masalah ini adalah menjadikan sesebuah pautan (anchor) sebagai POST request. Aku terfikir satu cara iaitu menggunakan XHR daripada javascript. Tetapi aku rasa terlalu overkill. Setelah baca manual dan API Yii2, ada satu helper yang boleh digunakan untuk menyelesaikan masalah ini.

Di dalam Yii2, Html::a() mempunyai beberapa tetapan yang boleh diletakkan dan antaranya adalah data-method dan data-param. Sebagai contoh:

Html::a(('title' ,
  Url::to(['some/url']),
  [
    'data-method' => 'POST',
    'data-params' => ['modelName' => json_encode($data, true)]
  ]
)

Yang akan menjadikan sesebuah pautan, apabila ditekan oleh pengguna dia merubah menjadi satu POST request kepada server bukannya GET. Daripada pemahaman aku, asalnya memang akan menjadi GET tetapi apabila routing Yii2 mendapat tahu bahawa ada data-method yang sedang dihantar, maka Yii2 akan membuat satu redirect menukar request tersebut daripada GET kepada POST.

Kaedah ini agak berbeza dengan apa yang dibuat oleh Laravel untuk PUT & PATCH.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.