Secara default, captcha Yii2 tidak disertai dengan tautan / tombol "refresh" yang memungkinkan Anda untuk refresh gambar captcha. Demikian juga ketika reload halaman gambar captcha yang muncul tetap sama. Hal Ini bisa membuat frustasi karena seringkali gambar captcha tidak bisa terbaca (bahkan oleh manusia). Pada tutorial kali ini, kita akan belajar membuat tautan/tombol "refresh" gambar captcha dan juga melakukan refresh gambar captcha setiap kali reload halaman. 1. Membuat CaptchaRefreshable Langkah pertama yang perlu kita lakukan adalah membuat class CaptchaRefreshable pada direktori models atau commons\models jika Anda menggunakan yii2 advanced template. <?php namespace common\models; class CaptchaRefreshable extends \yii\captcha\Captcha { /** * Overrides the $template HTML */ public function init() { $refresh_a = \yii\helpers\Html::a('refresh', '#', [ 'id' => 'refresh-captcha', 'class' => 'text-small' // .text-small { font-size: 0.85em; } - include in your CSS ]); $this->template = ' <div id="verify-code" class="row"> <div class="large-3 columns">{image} ' . $refresh_a . '</div> <div class="large-6 columns">{input}</div> </div>'; parent::init(); } /** * Register the refresh JS */ public function registerClientScript() { $view = $this->getView(); $view->registerJs(" $('#refresh-captcha').on('click', function(e){ e.preventDefault(); $('#verify-code img').yiiCaptcha('refresh'); }) "); parent::registerClientScript(); } } 2. Membuat...