<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yii2 Framework Archives - Mr Agus</title>
	<atom:link href="https://mragus.com/pemrograman/yii2/feed/" rel="self" type="application/rss+xml" />
	<link>https://mragus.com/pemrograman/yii2/</link>
	<description>Read, Learn and Share Ilmu yang Bermanfaat</description>
	<lastBuildDate>Sun, 11 Feb 2018 13:42:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.2</generator>

<image>
	<url>https://mragus.com/wp-content/uploads/2017/07/Fav-icon-untuk-mragus.com_-150x150.png</url>
	<title>Yii2 Framework Archives - Mr Agus</title>
	<link>https://mragus.com/pemrograman/yii2/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Cara Membuat Console Command di Framework Yii2</title>
		<link>https://mragus.com/cara-membuat-console-command-di-framework-yii2/</link>
					<comments>https://mragus.com/cara-membuat-console-command-di-framework-yii2/#respond</comments>
		
		<dc:creator><![CDATA[Agus Wiji Suhariono]]></dc:creator>
		<pubDate>Sun, 11 Feb 2018 13:32:23 +0000</pubDate>
				<category><![CDATA[Yii2 Framework]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yii2]]></category>
		<category><![CDATA[yii2command]]></category>
		<category><![CDATA[yii2console]]></category>
		<category><![CDATA[yii2framework]]></category>
		<guid isPermaLink="false">https://mragus.com/?p=3354</guid>

					<description><![CDATA[<p>Assalamualaikum wr wb, halo para pembaca yang budiman, pada kesempatan kali ini saya akan membagikan ilmu dan tutorial tentang Cara Membuat Console Command di Framework Yii2. Tak habis-habis rasanya terus mengulas fitur dan keunggulan dari Framework Yii2. Karena kelengkapan&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://mragus.com/cara-membuat-console-command-di-framework-yii2/">Cara Membuat Console Command di Framework Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Assalamualaikum wr wb, halo para pembaca yang budiman, pada kesempatan kali ini saya akan membagikan ilmu dan tutorial tentang Cara Membuat Console Command di Framework Yii2. Tak habis-habis rasanya terus mengulas fitur dan keunggulan dari Framework Yii2. Karena kelengkapan fitur yang dimiliki framework inilah yang membuat saya jatuh hati<span id="more-3354"></span>. Saya mempercayakan pengerjaan project-project yang saya handle selama 3 tahun menggunakan Framework Yii2 ini.</p>
<p>Salah satu fitur yang saya sukai dari Framework Yii2 adalah bisa menjalankan fungsi melalui console atau terminal. Biasanya fitur ini saya gunakan untuk mengecek atau mengupdate data secara otomatis atau berkala dan di padukan penggunaannya menggunakan <a href="https://mragus.com/mengenal-cron-job-di-linux/">CRON</a> di <em>Linux</em>. Oke, untuk lebih jelasnya kita mulai nyekrip.</p>
<h1>Cara Membuat Console Command di Framework Yii2</h1>
<p>Untuk membuat fungsi ini, kita perlu tahu terlebih dahulu dimana lokasi fungsi tersebut di tempatkan. Pada template Yii2 basic maupun advance, letak folder fungsi ini sedikit berbeda.</p>
<p>Jika anda menggunakan template basic, maka letak folder untuk menaruh fungsi console command berada di bawah folder <strong>root app</strong> dan berada di dalam folder <strong>commands/</strong> . Tetapi jika anda menggunakan template advance, maka letak folder untuk menaruh fungsi console command berada di bawah folder <strong>root app</strong> dan berada di dalam folder <strong>console/controllers/</strong> .</p>
<pre class="lang:default decode:true">Basic Template
root App/
commands/
    TesController.php

Advance Template
Root App/
console/
   controllers/
      TesController.php
</pre>
<h2>Contoh Pertama</h2>
<p>Berikut adalah contoh fungsi console command pada template Yii2 basic. Bisa kita lihat, untuk class HelloController akan meng <em>extends </em>class dari <a href="http://www.yiiframework.com/doc-2.0/yii-console-controller.html"><em>yii\console\Controller</em></a>.</p>
<pre class="lang:default decode:true ">&lt;?php
/**
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

namespace app\commands;

use yii\console\Controller;

/**
 * This command echoes the first argument that you have entered.
 *
 * This command is provided as an example for you to learn how to create console commands.
 *
 * @author Qiang Xue &lt;qiang.xue@gmail.com&gt;
 * @since 2.0
 */
class HelloController extends Controller
{
    /**
     * This command echoes what you have entered as the message.
     * @param string $message the message to be echoed.
     */
    public function actionIndex($message = 'hello world')
    {
        echo $message . "\n";
    }
}
</pre>
<p>Untuk mengeksekusi nya anda bisa lihat pada screenshot di bawah ini.</p>
<div id="attachment_3355" style="width: 571px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3355" decoding="async" class=" wp-image-3355" src="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_437.png" alt="Cara Membuat Console Command di Framework Yii2" width="561" height="410" srcset="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_437.png 1256w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_437-300x219.png 300w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_437-768x561.png 768w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_437-1024x748.png 1024w" sizes="(max-width: 561px) 100vw, 561px" /><p id="caption-attachment-3355" class="wp-caption-text">Cara Membuat Console Command di Framework Yii2</p></div>
<h2>Contoh Kedua</h2>
<p>Untuk contoh kedua ini saya akan membuat sebuah fungsi menggunakan console command yang memproses sebuah insert dan view data dari database. Saya akan menggunakan tabel post dengan struktur sebagai berikut.</p>
<pre class="lang:default decode:true ">+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| author_id   | int(11)      | NO   |     | NULL    |                |
| title       | varchar(255) | NO   |     | NULL    |                |
| description | varchar(500) | NO   |     | NULL    |                |
| content     | text         | NO   |     | NULL    |                |
| date        | date         | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
6 rows in set (0,00 sec)
</pre>
<p>Kemudian saya buat model dengan nama <strong>Posts </strong>dan terletak di <strong>app/models/Posts.php . </strong>Kemudian kita buat sebuah controller dengan nama <strong>TesController</strong> dan terletak di <strong>app/commands/TesController.php</strong> . Terdapat dua buah fungsi yaitu actionInsert &amp; actionView terhadap tabel <strong>Posts</strong>, dan penampakan skrip nya adalah sebagai berikut.</p>
<pre class="lang:default decode:true ">&lt;?php
/**
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

namespace app\commands;

use yii\console\Controller;
use app\models\Posts;
/**
 * This command echoes the first argument that you have entered.
 *
 * This command is provided as an example for you to learn how to create console commands.
 *
 * @author Qiang Xue &lt;qiang.xue@gmail.com&gt;
 * @since 2.0
 */
class TesController extends Controller
{
    /**
     * This command echoes what you have entered as the message.
     * @param string $message the message to be echoed.
     */
    public function actionInsert()
    {
      	$post = new Posts;
      	$post-&gt;author_id = 1;
      	$post-&gt;title = "Insert dari console";
      	$post-&gt;description = "Saya mencoba insert data ke database melalui console";
      	$post-&gt;content = "Mragus.com";
      	$post-&gt;date = date('Y-m-d');
      	if($post-&gt;save()){
      		echo "data berhasil disimpan";
      	}else{
      		echo "data gagal disimpan";
      	}
    }

    public function actionView($id){
    	$post = Posts::findOne($id);
    	echo $post-&gt;description;
    }
}
</pre>
<p>Untuk mengeksekusinya adalah seperti di bawah ini.</p>
<div id="attachment_3360" style="width: 545px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3360" decoding="async" loading="lazy" class=" wp-image-3360" src="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_438.png" alt="Contoh Ekseskusi Insert Data" width="535" height="339" srcset="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_438.png 1063w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_438-300x190.png 300w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_438-768x487.png 768w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_438-1024x649.png 1024w" sizes="(max-width: 535px) 100vw, 535px" /><p id="caption-attachment-3360" class="wp-caption-text">Contoh Ekseskusi Insert Data</p></div>
<p>Coba kita lihat hasilnya di database.</p>
<div id="attachment_3362" style="width: 572px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3362" decoding="async" loading="lazy" class=" wp-image-3362" src="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_439-1.png" alt="Data pada database hasil dari Insert melalui Console" width="562" height="194" srcset="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_439-1.png 1827w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_439-1-300x103.png 300w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_439-1-768x264.png 768w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_439-1-1024x352.png 1024w" sizes="(max-width: 562px) 100vw, 562px" /><p id="caption-attachment-3362" class="wp-caption-text">Data pada database hasil dari Insert melalui Console</p></div>
<p>Selanjutnya kita menguji action View nya dengan cara memanggil action tersebut dan menambahkan opsi parameter <em>ID </em>data 1001 pada tabel <strong>Posts</strong>.</p>
<div id="attachment_3364" style="width: 577px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3364" decoding="async" loading="lazy" class=" wp-image-3364" src="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_440.png" alt="Mengeksekusi action view pada console command" width="567" height="361" srcset="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_440.png 1057w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_440-300x191.png 300w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_440-768x488.png 768w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_440-1024x651.png 1024w" sizes="(max-width: 567px) 100vw, 567px" /><p id="caption-attachment-3364" class="wp-caption-text">Mengeksekusi action view pada console command</p></div>
<p>Cukup mudah bukan gan, selanjutnya anda bisa mengkreasikan sendiri fungsi tersebut sesuai dengan kebutuhan yang anda perlukan. Sekian tutorial dari saya ini, semoga dapat bermanfaat. Kritik dan sarannya saya tunggu untuk kesempurnaan tulisan ini dan masukan untuk saya pribadi.</p>
<p>Terimakasih.</p>
<p>The post <a rel="nofollow" href="https://mragus.com/cara-membuat-console-command-di-framework-yii2/">Cara Membuat Console Command di Framework Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mragus.com/cara-membuat-console-command-di-framework-yii2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cara Membuat Module di Framework Yii2</title>
		<link>https://mragus.com/cara-membuat-module-di-framework-yii2/</link>
					<comments>https://mragus.com/cara-membuat-module-di-framework-yii2/#respond</comments>
		
		<dc:creator><![CDATA[Agus Wiji Suhariono]]></dc:creator>
		<pubDate>Sun, 11 Feb 2018 04:13:35 +0000</pubDate>
				<category><![CDATA[Yii2 Framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yii2]]></category>
		<category><![CDATA[yii2framework]]></category>
		<category><![CDATA[yii2module]]></category>
		<guid isPermaLink="false">https://mragus.com/?p=3342</guid>

					<description><![CDATA[<p>Assalamualaikum wr wb, pada kesempatan kali ini saya akan sharing tutorial tentang cara membuat module di Framework Yii2. Module merupakan sebuah representasi untuk sub aplikasi yang dalamnya terdiri dan Model, View dan Controller. Yii2 menyediakan fitur untuk membuat module&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://mragus.com/cara-membuat-module-di-framework-yii2/">Cara Membuat Module di Framework Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Assalamualaikum wr wb, pada kesempatan kali ini saya akan sharing tutorial tentang cara membuat module di Framework Yii2. Module merupakan sebuah representasi untuk sub aplikasi yang dalamnya terdiri dan<em> Model, View </em>dan<em> Controller</em>. Yii2 menyediakan fitur untuk membuat module secara instan dengan menggunakan Gii.<span id="more-3342"></span></p>
<p>Meskipun kita dengan secara mudah membuat module dengan menggunakan Gii, tapi kita juga harus mengerti lebih lanjut tentang struktur dari module dan konfigurasi apa saja yang dibutuhkan. Oke, langsung saja kita mulai untuk nyekrip nya.</p>
<h1>Cara Membuat Module di Framework Yii2</h1>
<p>Pada tutorial ini, saya menggunakan template <em>Basic</em> untuk Framework Yii2 nya. Langkah pertama kita masuk ke aplikasi dan kemudian masuk ke Gii. Selanjutnya kita pilih menu <em><strong>Module Generator</strong></em>.</p>
<div id="attachment_3346" style="width: 543px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3346" decoding="async" loading="lazy" class="wp-image-3346" src="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_433.png" alt="Cara Membuat Module di Framework Yii2" width="533" height="236" srcset="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_433.png 1891w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_433-300x133.png 300w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_433-768x340.png 768w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_433-1024x454.png 1024w" sizes="(max-width: 533px) 100vw, 533px" /><p id="caption-attachment-3346" class="wp-caption-text">Cara Membuat Module di Framework Yii2</p></div>
<p>Kemudian kita isikan nama <strong>module</strong> pada form yang tersedia, contohnya sebagai berikut.</p>
<div id="attachment_3348" style="width: 561px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3348" decoding="async" loading="lazy" class=" wp-image-3348" src="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_434-1.png" alt="Cara Membuat Module di Framework Yii2" width="551" height="426" srcset="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_434-1.png 1117w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_434-1-300x232.png 300w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_434-1-768x594.png 768w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_434-1-1024x792.png 1024w" sizes="(max-width: 551px) 100vw, 551px" /><p id="caption-attachment-3348" class="wp-caption-text">Cara Membuat Module di Framework Yii2</p></div>
<p>Setelah module sukses ter generate, maka akan muncul pesan berwarna <strong>hijau</strong> di bawah tombol preview yang berisi pesan untuk menambahkan skrip class module di dalam konfigurasi aplikasi kita. Untuk menambahkan skrip tersebut, kita buka file <em>config</em> di <strong>config/web.php</strong>, kemudian tambahkan skripnya. Contohnya sebagai berikut.</p>
<div id="attachment_3350" style="width: 560px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3350" decoding="async" loading="lazy" class="wp-image-3350" src="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_435.png" alt="Cara Membuat Module di Framework Yii2" width="550" height="513" srcset="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_435.png 997w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_435-300x279.png 300w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_435-768x715.png 768w" sizes="(max-width: 550px) 100vw, 550px" /><p id="caption-attachment-3350" class="wp-caption-text">Cara Membuat Module di Framework Yii2</p></div>
<p>Untuk mengakses module yang telah kita buat, arahkan url sesuai dengan nama module yang telah kita buat. Contohnya sebagai berikut.</p>
<div id="attachment_3351" style="width: 572px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-3351" decoding="async" loading="lazy" class=" wp-image-3351" src="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_436.png" alt="Cara Membuat Module di Framework Yii2" width="562" height="267" srcset="https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_436.png 1706w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_436-300x142.png 300w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_436-768x364.png 768w, https://mragus.com/wp-content/uploads/2018/02/aguswijisuhariono_436-1024x486.png 1024w" sizes="(max-width: 562px) 100vw, 562px" /><p id="caption-attachment-3351" class="wp-caption-text">Cara Membuat Module di Framework Yii2</p></div>
<h2>Struktur</h2>
<p>Struktur module yang kita buat adalah sebagai berikut.</p>
<pre class="lang:default decode:true">modules/
   BelajarModule/                folder untuk module
      TesModule.php              file yang berisi class untuk module id
      controllers/               folder yang digunakan untuk menyimpan controller untuk module
        DefaultController.php    file yang berisi class DefaultController
    models/                      kita bisa menambahkan folder models untuk menyimpan class model
    views/                       folder yang digunakan untuk menyimpan view pada module
        default/                 folder yang digunakan untuk menyimpan view pada DefaultController
            index.php            file index untuk DefaultController</pre>
<p>Selanjutnya anda bisa mengembangkan sendiri dan menambahkan file sesuai dengan kebutuhan pada project yang agan-agan kerjakan. Sekian tutorial dari saya ini, semoga dapat bermanfaat. Kritik dan masukannya saya tunggu untuk kesempurnaan tulisan ini.</p>
<p>Terimakasih.</p>
<p>The post <a rel="nofollow" href="https://mragus.com/cara-membuat-module-di-framework-yii2/">Cara Membuat Module di Framework Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mragus.com/cara-membuat-module-di-framework-yii2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2</title>
		<link>https://mragus.com/mudahnya-membuat-sorting-tabel-gridview-pada-framework-yii2/</link>
					<comments>https://mragus.com/mudahnya-membuat-sorting-tabel-gridview-pada-framework-yii2/#comments</comments>
		
		<dc:creator><![CDATA[Agus Wiji Suhariono]]></dc:creator>
		<pubDate>Tue, 08 Aug 2017 12:17:08 +0000</pubDate>
				<category><![CDATA[Yii2 Framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yii2]]></category>
		<guid isPermaLink="false">https://mragus.com/?p=2812</guid>

					<description><![CDATA[<p>Assalamualaikum wr wb, untuk tulisan kali ini, saya akan memberi judul Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2. Seperti yang di ketahui Yii2 merupakan salah satu framework populer dan memiliki reputasi yang bagus. Yii2 memberikan kemudahan kepada penggunanya&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://mragus.com/mudahnya-membuat-sorting-tabel-gridview-pada-framework-yii2/">Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Assalamualaikum wr wb, untuk tulisan kali ini, saya akan memberi judul <em>Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2</em>. Seperti yang di ketahui Yii2 merupakan salah satu framework populer dan memiliki reputasi yang bagus. Yii2 memberikan kemudahan kepada penggunanya untuk membuat aplikasi secara cepat<span id="more-2812"></span> dengan berbagai fitur yang disediakan. Seperti membuat CRUD dengan model MVC menggunakan Generator yang bernama Gii. Selain itu kita juga bisa membuat sorting pada tabel atau gridview dengan mudah hanya dalam beberapa langkah.</p>
<p>Di tutorial kali ini saya akan memberikan contoh sorting dengan tabel yang memiliki relasi dengan tabel yang lain, atau biasa disebut sebagai <em>related tabel</em>. Tabel yang saya gunakan adalah  tabel posts dan authors. Untuk tampilan tabel yang akan di kasih sorting adalah tabel Posts.</p>
<h3>Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2</h3>
<p>Berikut adalah struktur tabel Author.</p>
<pre class="lang:default decode:true EnlighterJSRAW">+------------+--------------+------+-----+-------------------+----------------+
| Field      | Type         | Null | Key | Default           | Extra          |
+------------+--------------+------+-----+-------------------+----------------+
| id         | int(11)      | NO   | PRI | NULL              | auto_increment |
| first_name | varchar(50)  | NO   |     | NULL              |                |
| last_name  | varchar(50)  | NO   |     | NULL              |                |
| email      | varchar(100) | NO   | UNI | NULL              |                |
| birthdate  | date         | NO   |     | NULL              |                |
| added      | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+------------+--------------+------+-----+-------------------+----------------+
6 rows in set (0,00 sec)
</pre>
<p>Tabel Posts.</p>
<pre class="lang:default decode:true EnlighterJSRAW">+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| author_id   | int(11)      | NO   |     | NULL    |                |
| title       | varchar(255) | NO   |     | NULL    |                |
| description | varchar(500) | NO   |     | NULL    |                |
| content     | text         | NO   |     | NULL    |                |
| date        | date         | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
6 rows in set (0,00 sec)
</pre>
<h3>Coding</h3>
<p>Bisa dilihat pada tabel posts memiliki relasi dengan tabel author. Selanjutnya kita buat CRUD dan Gridviewnya menggunakan Gii untuk tabel Posts.</p>
<div id="attachment_2817" style="width: 533px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2817" decoding="async" loading="lazy" class="wp-image-2817" src="https://mragus.com/wp-content/uploads/2017/08/aguswijisuhariono_148.png" alt="Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2" width="523" height="241" srcset="https://mragus.com/wp-content/uploads/2017/08/aguswijisuhariono_148.png 1777w, https://mragus.com/wp-content/uploads/2017/08/aguswijisuhariono_148-300x138.png 300w, https://mragus.com/wp-content/uploads/2017/08/aguswijisuhariono_148-768x354.png 768w, https://mragus.com/wp-content/uploads/2017/08/aguswijisuhariono_148-1024x472.png 1024w" sizes="(max-width: 523px) 100vw, 523px" /><p id="caption-attachment-2817" class="wp-caption-text">Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2</p></div>
<p>Setelah CRUD di buat, ternyata pada kolom author masih berupa ID. Untuk menampilkan nama author pada tabel ini, kita perlu membuat <a href="http://www.yiiframework.com/wiki/834/relational-query-lazy-loadnig-and-eager-loading-in-yii-2-0/">lazy loading</a> dengan menggunakan fungsi relasi yang terdapat pada model <em>posts</em>.</p>
<div id="attachment_2818" style="width: 531px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2818" decoding="async" loading="lazy" class="wp-image-2818" src="https://mragus.com/wp-content/uploads/2017/08/aguswijisuhariono_149.png" alt="Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2" width="521" height="252" srcset="https://mragus.com/wp-content/uploads/2017/08/aguswijisuhariono_149.png 1695w, https://mragus.com/wp-content/uploads/2017/08/aguswijisuhariono_149-300x145.png 300w, https://mragus.com/wp-content/uploads/2017/08/aguswijisuhariono_149-768x371.png 768w, https://mragus.com/wp-content/uploads/2017/08/aguswijisuhariono_149-1024x494.png 1024w" sizes="(max-width: 521px) 100vw, 521px" /><p id="caption-attachment-2818" class="wp-caption-text">Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2</p></div>
<p>Jika belum ada, kita bisa buat fungsinya secara menual, untuk scriptnya contohnya sebagai berikut.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function getAuthor()
{
   return $this-&gt;hasOne(Authors::className(), ['id' =&gt; 'author_id']);
}</pre>
<p>Setelah fungsi tersebut di atas di buat, sesuaikan juga tampilan Gridview untuk menampilkan nama dari author.</p>
<pre class="lang:default decode:true EnlighterJSRAW">&lt;?= 
   GridView::widget([
       'dataProvider' =&gt; $dataProvider,
       'columns' =&gt; [
           ['class' =&gt; 'yii\grid\SerialColumn'],
           'author.first_name',
           'title',
           'description',
           'content',
           // 'date',

           ['class' =&gt; 'yii\grid\ActionColumn'],
       ],
   ]); 
?&gt;</pre>
<p>Untuk membuat sorting, kita perlu memodifikasi script pada controllers terkait. Tambahkan property sort pada class ActiveDataProvider, serta definisikan kolom yang ingin di kasih fitur sorting. Karena sorting ini menggunakan dua tabel, jangan lupa gunakan <em>join with </em>pada fungsi yang di gunakan untuk menampilkan tabel posts. Pada Sorting kolom yang menggunakan related tabel, ada beberapa penyesuaian script.</p>
<pre class="lang:default decode:true EnlighterJSRAW">'author.first_name' =&gt; [
      'asc' =&gt; [ 'authors.first_name' =&gt; SORT_ASC ],
      'desc' =&gt; ['authors.first_name' =&gt; SORT_DESC],
      'default' =&gt; SORT_DESC,
],</pre>
<p>Untuk properti yang akan di kasih sorting, kita harus menggunakan lazy loading dalam pendefinisian attributnya. Kemudian pada ASC, atau DESC kita harus mendefinisikan nama kolom secara real, seperti contoh di atas :</p>
<p>authors.first_nama(&#8216;nama_tabel&#8217;.&#8217;nama_kolom&#8217;).</p>
<p>Secara lengkap berikut adalah script pada fungsi index pada controllers Posts.</p>
<pre class="lang:default decode:true EnlighterJSRAW ">public function actionIndex(){
        $query = Posts::find()
                    -&gt;joinWith(['author']);
        $dataProvider = new ActiveDataProvider([
            'query' =&gt; $query,
            'sort' =&gt; [
                'attributes' =&gt; [
                    'title',
                    'description',
                    'content',
                    'author.first_name' =&gt; [
                        'asc' =&gt; [ 'authors.first_name' =&gt; SORT_ASC ],
                        'desc' =&gt; ['authors.first_name' =&gt; SORT_DESC],
                        'default' =&gt; SORT_DESC,
                    ],
                ],
                'defaultOrder' =&gt; [
                    'title' =&gt; SORT_ASC,
                ],
            ],
            'pagination' =&gt; [
                'pageSize' =&gt; 20
            ],
        ]);
        return $this-&gt;render('index', [
            'dataProvider' =&gt; $dataProvider,
        ]);
    }</pre>
<h3>Testing</h3>
<p>Setelah script kita sesuaikan, kemudian tes apa yang telah kita buat diatas tadi. Berikut adalah penampakan dari CRUD tabel Posts yang sudah di beri fitur sorting. Pada semua kolom yang kita set untuk diberi futur sorting, tulisan pada header akan berwarna biru (menunjukkan kolom dapat di sort).</p>
<div id="attachment_2820" style="width: 579px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2820" decoding="async" loading="lazy" class="wp-image-2820" src="https://mragus.com/wp-content/uploads/2017/08/Peek-2017-08-08-19-10.gif" alt="Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2" width="569" height="275" /><p id="caption-attachment-2820" class="wp-caption-text">Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2</p></div>
<p>Mudah bukan, hanya dalam beberapa langkah fitur sorting bisa di implementasikan pada view tabel yang kita inginkan. Semoga tulisan ini bermanfaat, masukan dari teman teman readers sangat saya butuhkan. Terimakasih.</p>
<p>The post <a rel="nofollow" href="https://mragus.com/mudahnya-membuat-sorting-tabel-gridview-pada-framework-yii2/">Mudahnya Membuat Sorting Tabel Gridview Pada Framework Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mragus.com/mudahnya-membuat-sorting-tabel-gridview-pada-framework-yii2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Before Save dan After Save di Yii2</title>
		<link>https://mragus.com/before-save-dan-after-save-di-yii2/</link>
					<comments>https://mragus.com/before-save-dan-after-save-di-yii2/#respond</comments>
		
		<dc:creator><![CDATA[Agus Wiji Suhariono]]></dc:creator>
		<pubDate>Sun, 18 Dec 2016 14:18:28 +0000</pubDate>
				<category><![CDATA[Yii2 Framework]]></category>
		<category><![CDATA[pemrograman]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yii2]]></category>
		<guid isPermaLink="false">https://mragus.com/?p=2002</guid>

					<description><![CDATA[<p>Assalamualaikum wr wb, pada kesempatan kali ini saya akan berbagi ilmu mengenai penjelasan dan cara menggunakan before save dan after save di Yii2. Setelah lama tidak update blog karena berbagai kesibukan, kita mulai lagi belajar dari hal hal yang&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://mragus.com/before-save-dan-after-save-di-yii2/">Before Save dan After Save di Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: left;">Assalamualaikum wr wb, pada kesempatan kali ini saya akan berbagi ilmu mengenai penjelasan dan cara menggunakan before save dan after save di Yii2. Setelah lama tidak update blog karena berbagai kesibukan, kita mulai lagi belajar dari hal hal yang ringan tapi cukup bermanfaat. Kita akan membuat sebuah fungsi di Yii2 <span id="more-2002"></span>yang cara menggunakan nya mirip seperti trigger di Sql, fungsi ini sangat berguna karena berjalan secara paralel pada waktu melakukan proses save atau update data pada model active record. Untuk lebih jelasnya langsung saja kita coba praktekkan cara membuat Before Save dan After Save di Yii2.</p>
<h2 style="text-align: left;">Before Save dan After Save di Yii2</h2>
<p style="text-align: left;">Disini saya akan menggunakan tabel dengan struktur seperti di bawah ini.</p>
<pre class="lang:default decode:true EnlighterJSRAW">mysql&gt; desc tb_propinsi;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| propinsi_id  | int(11)     | NO   | PRI | NULL    | auto_increment |
| nama         | varchar(45) | NO   |     | NULL    |                |
| dalam_negeri | tinyint(4)  | YES  |     | NULL    |                |
| created_at   | datetime    | NO   |     | NULL    |                |
| updated_at   | datetime    | NO   |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+
5 rows in set (0,00 sec)
</pre>
<h3 style="text-align: left;">Kasus Pertama</h3>
<p style="text-align: left;">Kita buat sebuah CRUD menggunakan <a href="http://www.yiiframework.com/doc-2.0/guide-start-gii.html">GII</a> untuk tabel propinsi tersebut, tapi tanpa ada input untuk created_at dan updated_at dan coba kita lakukan proses insert data.</p>
<div id="attachment_2007" style="width: 427px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2007" decoding="async" loading="lazy" class="wp-image-2007 " src="https://mragus.com/wp-content/uploads/2016/12/Selection_140.png" alt="Before Save dan After Save di Yii2" width="417" height="303" srcset="https://mragus.com/wp-content/uploads/2016/12/Selection_140.png 797w, https://mragus.com/wp-content/uploads/2016/12/Selection_140-300x218.png 300w, https://mragus.com/wp-content/uploads/2016/12/Selection_140-768x558.png 768w" sizes="(max-width: 417px) 100vw, 417px" /><p id="caption-attachment-2007" class="wp-caption-text">Before Save dan After Save di Yii2</p></div>
<p style="text-align: left;">Maka akan terjadi error seperti berikut karena field created_at dan updated_at saya buat not null dan tidak ada default value pada form inputan.</p>
<div id="attachment_2006" style="width: 535px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2006" decoding="async" loading="lazy" class="wp-image-2006 " src="https://mragus.com/wp-content/uploads/2016/12/Selection_139-1024x415.png" alt="Before Save dan After Save di Yii2" width="525" height="213" srcset="https://mragus.com/wp-content/uploads/2016/12/Selection_139-1024x415.png 1024w, https://mragus.com/wp-content/uploads/2016/12/Selection_139-300x122.png 300w, https://mragus.com/wp-content/uploads/2016/12/Selection_139-768x311.png 768w, https://mragus.com/wp-content/uploads/2016/12/Selection_139.png 1416w" sizes="(max-width: 525px) 100vw, 525px" /><p id="caption-attachment-2006" class="wp-caption-text">Before Save dan After Save di Yii2</p></div>
<h3 style="text-align: left;">Solusi</h3>
<p style="text-align: left;">Nah, untuk menyelesaikan masalah di atas kita bisa menggunakan fungsi before save.</p>
<blockquote>
<p style="text-align: justify;">Before save adalah proses yang di lakukan sebelum proses save ke model active record terjadi.</p>
</blockquote>
<p style="text-align: left;">Kita buat script seperti pada dokumentasi nya <a href="http://www.yiiframework.com/doc-2.0/yii-db-baseactiverecord.html#beforeSave()-detail">disini</a>, dan ubah scrip pada model TbPropinsi dengan menambahkan script di bawah ini.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function beforeSave($insert) {
        if (parent::beforeSave($insert)) {
            $this-&gt;created_at = date('Y-m-d H:i:s');
            $this-&gt;updated_at = date('Y-m-d H:i:s');
            return true;
        } else {
            return false;
        }
    }</pre>
<p style="text-align: left;">Kemudian coba kita eksekusi lagi proses Insert Data Propinsi. Foilah sukses berjalan tanpa error pada field created at, updated at dan data sudah terisi sesuai before save yang kita definisikan.</p>
<div id="attachment_2010" style="width: 538px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2010" decoding="async" loading="lazy" class="wp-image-2010 " src="https://mragus.com/wp-content/uploads/2016/12/Selection_142-1024x314.png" alt="Before Save dan After Save di Yii2" width="528" height="162" srcset="https://mragus.com/wp-content/uploads/2016/12/Selection_142-1024x314.png 1024w, https://mragus.com/wp-content/uploads/2016/12/Selection_142-300x92.png 300w, https://mragus.com/wp-content/uploads/2016/12/Selection_142-768x235.png 768w, https://mragus.com/wp-content/uploads/2016/12/Selection_142.png 1754w" sizes="(max-width: 528px) 100vw, 528px" /><p id="caption-attachment-2010" class="wp-caption-text">Before Save dan After Save di Yii2</p></div>
<h3 style="text-align: left;">Kasus Kedua</h3>
<p style="text-align: left;">Pada kasus kedua ini saya akan mencoba menginsert data secara paralel pada tabel yang lain ketika proses menyimpan data pada tabel propinsi terjadi. Tabel yang saya gunakan adalah tabel kabupaten. Pada form Insert Tabel Propinsi, akan terjadi proses insert ke tabel propinsi dan tabel kabupaten.</p>
<pre class="lang:default decode:true EnlighterJSRAW">mysql&gt; desc tb_kabupaten_kota;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| kab_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| nama        | varchar(150) | NO   |     | NULL    |                |
| propinsi_id | int(11)      | NO   | MUL | NULL    |                |
| kab_kodya   | int(11)      | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
</pre>
<p style="text-align: left;">Seperti yang terlihat, ada sebuat field foreign key propinsi id pada tabel tb_kabupaten_kota tersebut, jika ingin melakukan proses paralel insert pada tabel kabupaten, <strong>tidak bisa menggunakan berfore save seperti pada kasus pertama.</strong> Karena row pada tabel propinsi belum terbentuk dan data untuk foreign key propinsi_id tidak ada. Untuk itulah maka pada kasus ini kita menggunakan fungsi <a href="http://www.yiiframework.com/doc-2.0/yii-db-baseactiverecord.html#afterSave()-detail">after save</a>.</p>
<blockquote>
<p style="text-align: justify;">After save adalah proses yang dilakukan setelah proses save di model Active Record Terjadi.</p>
</blockquote>
<p style="text-align: left;">Langsung saja kita tambahkan script di model TbPropinsi untuk menginsert data secara paralel pada tabel TbKabupatenKota.</p>
<pre class="lang:default decode:true EnlighterJSRAW ">public function afterSave($isNew, $old) {
       if ($isNew){  
           $kabupaten = new TbKabupatenKota;
           $kabupaten-&gt;propinsi_id = $this-&gt;propinsi_id;
           $kabupaten-&gt;nama = "kabupaten dari propinsi ".$this-&gt;nama;
           $kabupaten-&gt;kab_kodya = 1;
           $kabupaten-&gt;save();        
       }
   }</pre>
<p style="text-align: left;"><strong><em>*fungsi di atas berjalan jika proses insert data baru pada model tbPropinsi di eksekusi.</em></strong></p>
<h3 style="text-align: left;">Uji Coba</h3>
<p style="text-align: left;">Kita coba masukkan data pada <em>Form Create Propinsi</em>.</p>
<div id="attachment_2013" style="width: 451px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2013" decoding="async" loading="lazy" class="wp-image-2013 " src="https://mragus.com/wp-content/uploads/2016/12/Selection_143.png" alt="Before Save dan After Save di Yii2" width="441" height="368" srcset="https://mragus.com/wp-content/uploads/2016/12/Selection_143.png 674w, https://mragus.com/wp-content/uploads/2016/12/Selection_143-300x251.png 300w" sizes="(max-width: 441px) 100vw, 441px" /><p id="caption-attachment-2013" class="wp-caption-text">Before Save dan After Save di Yii2</p></div>
<p style="text-align: left;">Kemudian kita lihat data pada tabel kabupaten kota apakah data sudah bisa di insert beserta foreign key dari Tabel Propinsi. Tadaa, data berhasil di insert sesuai dengan fungsi after save yang kita buat tadi <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> .</p>
<div id="attachment_2014" style="width: 533px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2014" decoding="async" loading="lazy" class="wp-image-2014 " src="https://mragus.com/wp-content/uploads/2016/12/Selection_144-1024x334.png" alt="Before Save dan After Save di Yii2" width="523" height="170" srcset="https://mragus.com/wp-content/uploads/2016/12/Selection_144-1024x334.png 1024w, https://mragus.com/wp-content/uploads/2016/12/Selection_144-300x98.png 300w, https://mragus.com/wp-content/uploads/2016/12/Selection_144-768x251.png 768w, https://mragus.com/wp-content/uploads/2016/12/Selection_144.png 1782w" sizes="(max-width: 523px) 100vw, 523px" /><p id="caption-attachment-2014" class="wp-caption-text">Before Save dan After Save di Yii2</p></div>
<p style="text-align: left;">Sekian bahasan yang saya sampaikan, semoga dapat bermanfaat. Kritik dan masukkan silahkan sampaikan saja, jangan sungkan sungkan <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> .</p>
<p style="text-align: left;">Terimakasih.</p>
<p style="text-align: left;"><em>referensi dari <a href="http://www.yiiframework.com/">Yii2 framework</a></em></p>
<p>The post <a rel="nofollow" href="https://mragus.com/before-save-dan-after-save-di-yii2/">Before Save dan After Save di Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mragus.com/before-save-dan-after-save-di-yii2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Membuat submit form dengan Ajax di framework Yii2</title>
		<link>https://mragus.com/membuat-submit-form-dengan-ajax-di-framework-yii2/</link>
					<comments>https://mragus.com/membuat-submit-form-dengan-ajax-di-framework-yii2/#comments</comments>
		
		<dc:creator><![CDATA[Agus Wiji Suhariono]]></dc:creator>
		<pubDate>Thu, 28 Jul 2016 12:35:28 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Yii2 Framework]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[pemrograman]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yii2]]></category>
		<guid isPermaLink="false">https://mragus.com/?p=1610</guid>

					<description><![CDATA[<p>Assalamualaikum wr wb, pada kesempatan kali ini saya akan memberikan tutorial tentang bagaimana cara membuat submit form dengan ajax di framework Yii2. Asynchronous JavaScript and XMLHTTP disingkat ajax memberikan kita kemudahan untuk membuat sebuah aplikasi yang interaktif, karena proses dilakukan di&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://mragus.com/membuat-submit-form-dengan-ajax-di-framework-yii2/">Membuat submit form dengan Ajax di framework Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: left;">Assalamualaikum wr wb, pada kesempatan kali ini saya akan memberikan tutorial tentang bagaimana cara membuat submit form dengan ajax di framework Yii2. <b>A</b>synchronous <b>J</b>avaScript <b>a</b>nd <b>X</b>MLHTTP disingkat ajax memberikan kita kemudahan untuk membuat sebuah aplikasi yang interaktif, karena proses dilakukan di belakang layar tanpa harus membaca secara keseluruhan pada halaman yang di akses.<span id="more-1610"></span></p>
<p style="text-align: left;">Biasanya jika kita melakukan submit form secara normal, data akan dikirim ke server dan halaman form tersebut akan dilakukanrefresh. Hal ini akan membuat browser menjadi berat karena pada proses refresh, keseluruhan komponen akan di panggil ulang. Oleh karena itu jika kita melakukan submit melalui ajax, akan membuat beban browser menjadi tidak berat.</p>
<h4 style="text-align: left;">Membuat submit form dengan Ajax di framework Yii2</h4>
<p style="text-align: left;">Oke langsung saja kita mulai ngoding, form yang saya buat untuk menyimpan string dan upload file sesuai dengan postingan saya sebelumnya <a href="https://mragus.com/membuat-form-upload-file-pada-framework-yii2/">disini</a>. Kita buat terlebih dahulu form yang akan di pakai, jangan lupa beri ID pada form yang akan digunakan.</p>
<pre class="lang:default decode:true EnlighterJSRAW">&lt;div class="tb-blog-form"&gt;

    &lt;?php $form = ActiveForm::begin(['options' =&gt; ['enctype' =&gt; 'multipart/form-data'],'id'=&gt;'formSubmit']); ?&gt;

    &lt;?= $form-&gt;field($model, 'id_kategori')-&gt;textInput() ?&gt;

    &lt;?= $form-&gt;field($model, 'tanggal')-&gt;textInput() ?&gt;

    &lt;?= $form-&gt;field($model, 'judul')-&gt;textInput(['maxlength' =&gt; true]) ?&gt;

    &lt;?= $form-&gt;field($model, 'isi')-&gt;textInput(['maxlength' =&gt; true]) ?&gt;

    &lt;?= $form-&gt;field($model, 'status')-&gt;textInput() ?&gt;

    &lt;?= $form-&gt;field($model, 'gambar')-&gt;fileInput() ?&gt;

    &lt;div class="form-group"&gt;
        &lt;?= Html::submitButton($model-&gt;isNewRecord ? 'Create' : 'Update', ['class' =&gt; $model-&gt;isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?&gt;
    &lt;/div&gt;

    &lt;?php ActiveForm::end(); ?&gt;

&lt;/div&gt;</pre>
<p style="text-align: left;">Kemudian kita buat javascript yang akan digunakan untuk melakukan proses submit. Gunakan new FormData untuk data yang akan dikirim, karena selain string. terdapat juga file yang akan di upload. Jika hanya menyimpan string cukup gunakan SerializeArray.</p>
<pre class="lang:default decode:true EnlighterJSRAW">$('#formSubmit').on("submit",function(e){
      
        var formData = new FormData(this);
        var formURL = $("#formSubmit").attr("action");
        $.ajax(
        {
            url : formURL,
            type: "POST",
            data : formData,
            contentType: false,
            processData: false,
            success:function(data, textStatus, jqXHR) 
            {
                window.location = "{$urlIndex}";
            },
            error: function(jqXHR, textStatus, errorThrown) 
            {
                alert("gagal");      
            }
        });
        e.preventDefault();
        e.unbind(); untuk mencegah berkali kali submit
    });</pre>
<p style="text-align: left;">Sesuaikan controllernya sebagai berikut.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function actionCreate()
    {
        $model = new TbBlog();

        if ($model-&gt;load(Yii::$app-&gt;request-&gt;post())) {
            
            $gambar = UploadedFile::getInstance($model, 'gambar');

            if($model-&gt;validate()){
                $model-&gt;save();
                if (!empty($gambar)) {
                    $gambar-&gt;saveAs(Yii::getAlias('@frontend/web/img/') . 'gambar.' . $gambar-&gt;extension);
                    $model-&gt;gambar = 'gambar.' . $gambar-&gt;extension;
                    $model-&gt;save();
                }
            }

            $model-&gt;save();
            if(!Yii::$app-&gt;request-&gt;isAjax){
                return $this-&gt;redirect(['view', 'id' =&gt; $model-&gt;id]);
            }
        } else {
            return $this-&gt;render('create', [
                'model' =&gt; $model,
            ]);
        }
    }</pre>
<h4 style="text-align: left;">Percobaan</h4>
<p style="text-align: left;">Kita isikan data pada form yang tersedia serta gambar yang akan di upload.</p>
<div id="attachment_1615" style="width: 538px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1615" decoding="async" loading="lazy" class="wp-image-1615 " src="https://mragus.com/wp-content/uploads/2016/07/aguswijisuhariono-3.png" alt="Membuat submit form dengan Ajax di framework Yii2" width="528" height="431" srcset="https://mragus.com/wp-content/uploads/2016/07/aguswijisuhariono-3.png 719w, https://mragus.com/wp-content/uploads/2016/07/aguswijisuhariono-3-300x245.png 300w" sizes="(max-width: 528px) 100vw, 528px" /><p id="caption-attachment-1615" class="wp-caption-text">Membuat submit form dengan Ajax di framework Yii2</p></div>
<p style="text-align: left;">Kita lihat hasilnya.</p>
<div id="attachment_1617" style="width: 539px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1617" decoding="async" loading="lazy" class="wp-image-1617 " src="https://mragus.com/wp-content/uploads/2016/07/Screenshot-from-2016-07-28-191935-e1469708444864.png" alt="Membuat submit form dengan Ajax di framework Yii2" width="529" height="244" srcset="https://mragus.com/wp-content/uploads/2016/07/Screenshot-from-2016-07-28-191935-e1469708444864.png 1186w, https://mragus.com/wp-content/uploads/2016/07/Screenshot-from-2016-07-28-191935-e1469708444864-300x138.png 300w, https://mragus.com/wp-content/uploads/2016/07/Screenshot-from-2016-07-28-191935-e1469708444864-768x354.png 768w, https://mragus.com/wp-content/uploads/2016/07/Screenshot-from-2016-07-28-191935-e1469708444864-1024x472.png 1024w" sizes="(max-width: 529px) 100vw, 529px" /><p id="caption-attachment-1617" class="wp-caption-text">Membuat submit form dengan Ajax di framework Yii2</p></div>
<p style="text-align: left;">Data sukses terupload <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> , sekian tutorial dari saya semoga dapat bermanfaat.</p>
<p style="text-align: left;">Terimakasih.</p>
<p>The post <a rel="nofollow" href="https://mragus.com/membuat-submit-form-dengan-ajax-di-framework-yii2/">Membuat submit form dengan Ajax di framework Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mragus.com/membuat-submit-form-dengan-ajax-di-framework-yii2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Mengirim email pada framework yii2 dengan swiftmailer</title>
		<link>https://mragus.com/mengirim-email-pada-framework-yii2-dengan-swiftmailer/</link>
					<comments>https://mragus.com/mengirim-email-pada-framework-yii2-dengan-swiftmailer/#comments</comments>
		
		<dc:creator><![CDATA[Agus Wiji Suhariono]]></dc:creator>
		<pubDate>Thu, 28 Jul 2016 00:11:36 +0000</pubDate>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Yii2 Framework]]></category>
		<category><![CDATA[pemrograman]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yii2]]></category>
		<guid isPermaLink="false">https://mragus.com/?p=1599</guid>

					<description><![CDATA[<p>Assalamualaikum wr wb, pada kesempatan kali ini saya akan membuat tutorial tentang bagaimana cara mengirim email pada framework yii2 dengan swiftmailer. Email akronim dari electronic mail, merupakan metode yang digunakan untuk melakukan pertukaran pesan secara digital. Pada framework yii2&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://mragus.com/mengirim-email-pada-framework-yii2-dengan-swiftmailer/">Mengirim email pada framework yii2 dengan swiftmailer</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: left;">Assalamualaikum wr wb, pada kesempatan kali ini saya akan membuat tutorial tentang bagaimana cara mengirim email pada framework yii2 dengan swiftmailer. Email akronim dari electronic mail, merupakan metode yang digunakan untuk melakukan pertukaran pesan secara digital.</p>
<p style="text-align: left;">Pada framework yii2 untuk message interfacenya menggunakan swiftmailer yang memiliki banyak kelebihan antara lain compatible dengan server yang membutuhkan enkripsi, bisa meng attach file dengan ukuran yang besar, dll, untuk lebih lengkap anda bisa kunjungi pada  situs resmi <a href="http://swiftmailer.org/">disini</a>.</p>
<p style="text-align: left;">Oke tidak perlu lama-lama, langsung saja kita mulai membuat script mengenai cara mengirim email pada framework yii2 dengan swiftmailer.</p>
<h2 style="text-align: left;">Mengirim email pada framework yii2 dengan swiftmailer</h2>
<p style="text-align: left;">Terlebih dahulu kita buat konfigurasinya, saya akan menggunakan SMTP dari gmail yang akan digunakan sebagai email pengirim.</p>
<pre class="lang:default decode:true EnlighterJSRAW">'mail' =&gt; [
      'class' =&gt; 'yii\swiftmailer\Mailer',
      'useFileTransport' =&gt; false,
      'transport' =&gt; [
           'class' =&gt; 'Swift_SmtpTransport',
           'host' =&gt; 'smtp.gmail.com',
           'username' =&gt; 'emaildari@gmail.com',
           'password' =&gt; 'passwordemail',
           'port' =&gt; '587',
           'encryption' =&gt; 'tls',
     ],
 ],</pre>
<p style="text-align: left;">Kemudian kita buat method yang di gunakan untuk mengirim email.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function actionContact()
    {
        $model = new ContactForm();
        if ($model-&gt;load(Yii::$app-&gt;request-&gt;post()) &amp;&amp; $model-&gt;validate()) {
           Yii::$app-&gt;mail-&gt;compose()
                -&gt;setFrom('aplikasiku@yii2.com')
                -&gt;setTo($model-&gt;email)
                -&gt;setSubject($model-&gt;subject)
                -&gt;setHtmlBody($model-&gt;body)
                -&gt;send();

            return $this-&gt;refresh();
        } else {
            return $this-&gt;render('contact', [
                'model' =&gt; $model,
            ]);
        }
    }</pre>
<h3 style="text-align: left;">Uji Coba</h3>
<p style="text-align: left;">Persiapan sudah cukup, selanjutnya kita akan mencoba mengirim email melalui form. Form yang saya gunakan adalah form contact default dari framework Yii2. Isikan data yang di butuhkan dan submit form.</p>
<div id="attachment_1601" style="width: 419px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1601" decoding="async" loading="lazy" class="wp-image-1601 " src="https://mragus.com/wp-content/uploads/2016/07/aguswijisuhariono.png" alt="Mengirim email pada framework yii2 dengan swiftmailer" width="409" height="517" srcset="https://mragus.com/wp-content/uploads/2016/07/aguswijisuhariono.png 445w, https://mragus.com/wp-content/uploads/2016/07/aguswijisuhariono-237x300.png 237w" sizes="(max-width: 409px) 100vw, 409px" /><p id="caption-attachment-1601" class="wp-caption-text">Mengirim email pada framework yii2 dengan swiftmailer</p></div>
<p style="text-align: left;">Kemudian kita buka email yang menjadi tujuan pada form email tersebut, cek apakah email sudah masuk atau belum.</p>
<div id="attachment_1603" style="width: 420px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1603" decoding="async" loading="lazy" class="wp-image-1603 " src="https://mragus.com/wp-content/uploads/2016/07/Screenshot_2016-07-28-07-05-22.png" alt="Mengirim email pada framework yii2 dengan swiftmailer" width="410" height="728" srcset="https://mragus.com/wp-content/uploads/2016/07/Screenshot_2016-07-28-07-05-22.png 720w, https://mragus.com/wp-content/uploads/2016/07/Screenshot_2016-07-28-07-05-22-169x300.png 169w, https://mragus.com/wp-content/uploads/2016/07/Screenshot_2016-07-28-07-05-22-576x1024.png 576w" sizes="(max-width: 410px) 100vw, 410px" /><p id="caption-attachment-1603" class="wp-caption-text">Mengirim email pada framework yii2 dengan swiftmailer</p></div>
<p style="text-align: left;">Email sukses terkirim dengan menggunakan form yang telah kita buat. Pada kasus yang lain, anda dapat juga menambahkan attachment ataupun format email yang dapat kita sesuaikan. Untuk Pembahasan tersebut akan saya buat pada contoh tutorial saya yang selanjutnya.</p>
<p style="text-align: left;">Sekian tutorial singkat dan pembahasan saya mengenai cara Mengirim email pada framework yii2 dengan swiftmailer. Semoga dapat diterapkan dan dapat bermanfaat. Tetaplah belajar dan berusaha.</p>
<p style="text-align: left;">Terimakasih.</p>
<p>The post <a rel="nofollow" href="https://mragus.com/mengirim-email-pada-framework-yii2-dengan-swiftmailer/">Mengirim email pada framework yii2 dengan swiftmailer</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mragus.com/mengirim-email-pada-framework-yii2-dengan-swiftmailer/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Membuat form upload file pada framework Yii2</title>
		<link>https://mragus.com/membuat-form-upload-file-pada-framework-yii2/</link>
					<comments>https://mragus.com/membuat-form-upload-file-pada-framework-yii2/#comments</comments>
		
		<dc:creator><![CDATA[Agus Wiji Suhariono]]></dc:creator>
		<pubDate>Thu, 21 Jul 2016 12:44:38 +0000</pubDate>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Yii2 Framework]]></category>
		<category><![CDATA[pemrograman]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yii2]]></category>
		<guid isPermaLink="false">https://mragus.com/?p=1482</guid>

					<description><![CDATA[<p>Assalamualaikum wr wb, pada kesempatan kali ini saya akan share cara untuk Membuat form upload file pada framework Yii2. Membuat upload file pada sebuah website menjadi hal yang penting karena dapat memberikan informasi lebih mengenai hal yang ingin disampaikan,&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://mragus.com/membuat-form-upload-file-pada-framework-yii2/">Membuat form upload file pada framework Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: left;">Assalamualaikum wr wb, pada kesempatan kali ini saya akan share cara untuk Membuat form upload file pada framework Yii2. Membuat upload file pada sebuah website menjadi hal yang penting karena dapat memberikan informasi lebih mengenai hal yang ingin disampaikan, daripada hanya menyajikan informasi yang berupa plain <span id="more-1482"></span>text. Langsung saja kita mulai nyekrip untuk membuat form upload pada framework yii2.</p>
<h2 style="text-align: left;">Membuat form upload file pada framework Yii2</h2>
<p style="text-align: left;">Saya membuat tabel dengan nama tb_blog, untuk menyimpan string gambar saya buat kolom gambar dengan tipe varchar(200). Kemudian buat sebuah CRUD untuk tb_blog menggunakan gii dari yii2 framework untuk mempercepat proses hehe.</p>
<pre class="lang:default decode:true EnlighterJSRAW">mysql&gt; desc tb_blog;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| id_kategori | int(11)      | NO   | MUL | 0       |                |
| tanggal     | date         | YES  |     | NULL    |                |
| judul       | varchar(50)  | YES  |     | NULL    |                |
| isi         | varchar(50)  | YES  |     | NULL    |                |
| status      | int(11)      | YES  |     | NULL    |                |
| gambar      | varchar(200) | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
</pre>
<h3 style="text-align: left;">Scripting</h3>
<p style="text-align: left;">Terlebih dahulu konfigurasi model TbBlog, dan sesuaikan rulenya.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function rules()
  {
      return [
          [['id_kategori', 'status'], 'integer'],
          [['tanggal'], 'safe'],
          [['judul', 'isi'], 'string', 'max' =&gt; 50],
          [['gambar'],'file','skipOnEmpty'=&gt;TRUE,'extensions'=&gt;'jpg, png']
      ];
  }</pre>
<p style="text-align: left;">Saya membuat rule agar file dengan extensi jpg dan png saja yang boleh di upload. Sesuaikan juga form yang akan digunakan untuk mensubmit data data yang akan disimpan pada database.</p>
<pre class="lang:default decode:true EnlighterJSRAW">&lt;?php $form = ActiveForm::begin(['options' =&gt; ['enctype' =&gt; 'multipart/form-data']]); ?&gt;

   &lt;?= $form-&gt;field($model, 'id_kategori')-&gt;textInput() ?&gt;

   &lt;?= $form-&gt;field($model, 'tanggal')-&gt;textInput() ?&gt;

   &lt;?= $form-&gt;field($model, 'judul')-&gt;textInput(['maxlength' =&gt; true]) ?&gt;

   &lt;?= $form-&gt;field($model, 'isi')-&gt;textInput(['maxlength' =&gt; true]) ?&gt;

   &lt;?= $form-&gt;field($model, 'status')-&gt;textInput() ?&gt;

   &lt;?= $form-&gt;field($model, 'gambar')-&gt;fileInput() ?&gt;

   &lt;div class="form-group"&gt;
       &lt;?= Html::submitButton($model-&gt;isNewRecord ? 'Create' : 'Update', ['class' =&gt; $model-&gt;isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?&gt;
   &lt;/div&gt;

   &lt;?php ActiveForm::end(); ?&gt;</pre>
<p style="text-align: left;">Kemudian sesuaikan script pada controller untuk menyimpan data yang diterima melalui form, tentukan juga folder yang digunakan untuk menyimpan gambar.</p>
<pre class="lang:default decode:true EnlighterJSRAW">use yii\web\UploadedFile;

public function actionCreate()
    {
        $model = new TbBlog();

        if ($model-&gt;load(Yii::$app-&gt;request-&gt;post())) {
            
            $gambar = UploadedFile::getInstance($model, 'gambar');

            if($model-&gt;validate()){
                $model-&gt;save();
                if (!empty($gambar)) {
                    $gambar-&gt;saveAs(Yii::getAlias('@frontend/web/img/') . 'gambar.' . $gambar-&gt;extension);
                    $model-&gt;gambar = 'gambar.' . $gambar-&gt;extension;
                    $model-&gt;save(FALSE);
                }
            }

            $model-&gt;save();
            return $this-&gt;redirect(['view', 'id' =&gt; $model-&gt;id]);
        } else {
            return $this-&gt;render('create', [
                'model' =&gt; $model,
            ]);
        }
    }</pre>
<p style="text-align: left;">Selanjutnya kita buat sebuah method di controller untuk menampilkan gambar  pada view menggunakan response sendfile.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function actionViewGambar($nama){
        $file = Yii::getAlias('@frontend/web/img/' . $nama);
        return Yii::$app-&gt;response-&gt;sendFile($file, NULL, ['inline' =&gt; TRUE]);
    }</pre>
<p style="text-align: left;">Tambahkan script untuk menampilkan image pada GridView, dan lihat hasilnya.</p>
<pre class="lang:default decode:true EnlighterJSRAW ">&lt;?= GridView::widget([
        'dataProvider' =&gt; $dataProvider,
        'columns' =&gt; [
            ['class' =&gt; 'yii\grid\SerialColumn'],

            'id',
            'id_kategori',
            'tanggal',
            'judul',
            'isi',
            // 'status',
            [
                'class' =&gt; 'yii\grid\DataColumn',
                'header' =&gt; 'Gambar',
                'format' =&gt; 'raw',
                'value' =&gt; function($data){
                    return "&lt;img width='104px' src='".Url::to(['blog/view-gambar','nama'=&gt;$data-&gt;gambar])."'&gt;";
                }
            ],
            ['class' =&gt; 'yii\grid\ActionColumn'],
        ],
    ]); ?&gt;</pre>
<div id="attachment_1492" style="width: 541px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1492" decoding="async" loading="lazy" class="wp-image-1492 " src="https://mragus.com/wp-content/uploads/2016/07/blog20.png" alt="Membuat form upload file pada framework Yii2" width="531" height="269" srcset="https://mragus.com/wp-content/uploads/2016/07/blog20.png 1184w, https://mragus.com/wp-content/uploads/2016/07/blog20-300x152.png 300w, https://mragus.com/wp-content/uploads/2016/07/blog20-768x389.png 768w, https://mragus.com/wp-content/uploads/2016/07/blog20-1024x519.png 1024w" sizes="(max-width: 531px) 100vw, 531px" /><p id="caption-attachment-1492" class="wp-caption-text">Membuat form upload file pada framework Yii2</p></div>
<p style="text-align: left;">Cukup mudah bukan hehe, sekian tutorial dari saya mengenai membuat form upload file pada yii2 framework, semoga bermanfaat. Terimakasih.</p>
<p>The post <a rel="nofollow" href="https://mragus.com/membuat-form-upload-file-pada-framework-yii2/">Membuat form upload file pada framework Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mragus.com/membuat-form-upload-file-pada-framework-yii2/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Membuat reCaptcha Google untuk validasi sebuah Form di PHP</title>
		<link>https://mragus.com/membuat-recaptcha-google-untuk-validasi-sebuah-form-di-php/</link>
					<comments>https://mragus.com/membuat-recaptcha-google-untuk-validasi-sebuah-form-di-php/#comments</comments>
		
		<dc:creator><![CDATA[Agus Wiji Suhariono]]></dc:creator>
		<pubDate>Sat, 16 Jul 2016 16:00:18 +0000</pubDate>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Yii2 Framework]]></category>
		<category><![CDATA[pemrograman]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yii2]]></category>
		<guid isPermaLink="false">https://mragus.com/?p=1439</guid>

					<description><![CDATA[<p>Assalamualaikum wr wb, masih dalam nuansa bulan syawal 1437 H, maka saya ucapkan mohon maaf lahir batin dan pada kali ini saya akan sharing tutorial bagaimana cara membuat reCaptcha Google untuk validasi sebuah Form di PHP. Captcha merupakan sebuah&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://mragus.com/membuat-recaptcha-google-untuk-validasi-sebuah-form-di-php/">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: left;">Assalamualaikum wr wb, masih dalam nuansa bulan syawal 1437 H, maka saya ucapkan mohon maaf lahir batin dan pada kali ini saya akan sharing tutorial bagaimana cara membuat reCaptcha Google untuk validasi sebuah Form di PHP. Captcha merupakan sebuah metode pengujian yang digunakan untuk membedakan antara manusia dan komputer. Kenapa <a href="https://id.wikipedia.org/wiki/CAPTCHA">CAPTCHA</a> <span id="more-1439"></span>penting dalam sebuah bagian dari sekuritas, karena captcha dapat mencegah ancaman sebuah bot yang melakukan penetrasi pada sebuah sistem komputer.</p>
<p style="text-align: left;">Ada berbagai cara untuk membuat sebuah captcha, tetapi kali ini saya membuat captcha menggunakan reCaptcha dari google. Anda bisa kunjung langsung<a href="https://www.google.com/recaptcha/intro/index.html"> link berikut </a>untuk informasi lebih lanjut mengenai reCaptcha Google.</p>
<p class="hero-header" style="text-align: center;"><em>Tough on bots</em><br />
<em>Easy on humans</em></p>
<p style="text-align: center;"><em>Protect your website from spam and abuse while letting real people pass through with ease</em></p>
<h2 style="text-align: left;">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</h2>
<p style="text-align: left;">Kali ini saya akan buat reCaptcha untuk memvalidasi user yang akan login pada sebuah aplikasi php, saya disini menggunakan Yii Framework v2. Pertama kita harus mendapatkan api key terlebih dahulu dari reChapta google.</p>
<div id="attachment_1443" style="width: 542px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1443" decoding="async" loading="lazy" class="wp-image-1443 " src="https://mragus.com/wp-content/uploads/2016/07/blog5.png" alt="Membuat reCaptcha Google untuk validasi sebuah Form di PHP" width="532" height="215" srcset="https://mragus.com/wp-content/uploads/2016/07/blog5.png 1025w, https://mragus.com/wp-content/uploads/2016/07/blog5-300x121.png 300w, https://mragus.com/wp-content/uploads/2016/07/blog5-768x310.png 768w, https://mragus.com/wp-content/uploads/2016/07/blog5-1024x414.png 1024w" sizes="(max-width: 532px) 100vw, 532px" /><p id="caption-attachment-1443" class="wp-caption-text">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</p></div>
<p style="text-align: left;">Pilih get reCaptcha dan anda kemudian akan di alihkan ke halaman untuk manage api key, anda akan diminta untuk memasukkan nama label dan domain dari web anda.</p>
<div id="attachment_1444" style="width: 542px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1444" decoding="async" loading="lazy" class="wp-image-1444 " src="https://mragus.com/wp-content/uploads/2016/07/blog6.png" alt="Membuat reCaptcha Google untuk validasi sebuah Form di PHP" width="532" height="335" srcset="https://mragus.com/wp-content/uploads/2016/07/blog6.png 869w, https://mragus.com/wp-content/uploads/2016/07/blog6-300x189.png 300w, https://mragus.com/wp-content/uploads/2016/07/blog6-768x483.png 768w" sizes="(max-width: 532px) 100vw, 532px" /><p id="caption-attachment-1444" class="wp-caption-text">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</p></div>
<p style="text-align: left;">Setelah berhasil menginput anda akan diberikan penjelasan step by step bagimana cara memasang reCaptcha pada website anda.</p>
<div id="attachment_1446" style="width: 539px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1446" decoding="async" loading="lazy" class="wp-image-1446 " src="https://mragus.com/wp-content/uploads/2016/07/blog7.png" alt="Membuat reCaptcha Google untuk validasi sebuah Form di PHP" width="529" height="404" srcset="https://mragus.com/wp-content/uploads/2016/07/blog7.png 759w, https://mragus.com/wp-content/uploads/2016/07/blog7-300x229.png 300w" sizes="(max-width: 529px) 100vw, 529px" /><p id="caption-attachment-1446" class="wp-caption-text">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</p></div>
<h3 style="text-align: left;">Ngoding Time</h3>
<p style="text-align: left;">Saya kebetulan menggunakan template advance dari Yii2 Framework, saya akan memvalidasi login pada frontend. Untuk dapat menggunakan validasi dari reCaptcha, anda bisa baca dokumentasinya <a href="https://developers.google.com/recaptcha/docs/verify">disini</a>, reCaptcha menggunakan method post dengan beberapa parameter yang akan dikirimkan ke server, server akan mengirimkan respone ke website kita dengan nilai TRUE(1) jika verifikasi benar/ sesuai. Anda bisa lihat di bawah ini request dan response Api nya.</p>
<div id="attachment_1452" style="width: 540px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1452" decoding="async" loading="lazy" class="wp-image-1452 " src="https://mragus.com/wp-content/uploads/2016/07/blog8.png" alt="Membuat reCaptcha Google untuk validasi sebuah Form di PHP" width="530" height="346" srcset="https://mragus.com/wp-content/uploads/2016/07/blog8.png 797w, https://mragus.com/wp-content/uploads/2016/07/blog8-300x196.png 300w, https://mragus.com/wp-content/uploads/2016/07/blog8-768x501.png 768w" sizes="(max-width: 530px) 100vw, 530px" /><p id="caption-attachment-1452" class="wp-caption-text">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</p></div>
<p style="text-align: left;">Terlebih dulu kita buat sebuah method yang digunakan melakukan request post ke google. Saya menggunakan Curl dan untuk parameternya anda bisa lihat pada manajemen reCaptcha yang anda telah buat. Bagi yang belum mengerti tentang curl, anda bisa lihat pada postingan saya sebelumnya <a href="https://mragus.com/belajar-menggunakan-curl-di-php/">disini</a>.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function verifiyChap($rechap){
       $ch = curl_init();
       curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
       curl_setopt($ch, CURLOPT_POST,1);
       curl_setopt($ch, CURLOPT_POSTFIELDS,
           "secret=6LcYQCETAAAAABdrfEOmu_sbc0IRFRefrj8xsVPN&amp;response=".$rechap);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

       $server_output = curl_exec ($ch);
       $cekServer  = json_decode($server_output);
       curl_close ($ch);
       if(!empty($cekServer)){
           if ($cekServer-&gt;success == 1){ 
               return TRUE;
           }else{ 
               return FALSE;
           }
       }else{
           return FALSE;
       }
   }</pre>
<p style="text-align: left;">Kemudian sesuaikan form login yang akan digunakan.</p>
<pre class="lang:default decode:true EnlighterJSRAW">&lt;?php

/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model \common\models\LoginForm */

use yii\helpers\Html;
use yii\bootstrap\ActiveForm;

$this-&gt;title = 'Login';
$this-&gt;params['breadcrumbs'][] = $this-&gt;title;
?&gt;
&lt;div class="site-login"&gt;
    &lt;h1&gt;&lt;?= Html::encode($this-&gt;title) ?&gt;&lt;/h1&gt;

    &lt;p&gt;Please fill out the following fields to login:&lt;/p&gt;

    &lt;div class="row"&gt;
        &lt;div class="col-lg-5"&gt;
            &lt;?php $form = ActiveForm::begin(['id' =&gt; 'login-form']); ?&gt;

                &lt;?= $form-&gt;field($model, 'username') ?&gt;

                &lt;?= $form-&gt;field($model, 'password')-&gt;passwordInput() ?&gt;

                &lt;?= $form-&gt;field($model, 'rememberMe')-&gt;checkbox() ?&gt;

                &lt;div style="color:#999;margin:1em 0"&gt;
                    If you forgot your password you can &lt;?= Html::a('reset it', ['site/request-password-reset']) ?&gt;.
                &lt;/div&gt;

                &lt;div class="form-group"&gt;
                    &lt;?= Html::submitButton('Login', ['class' =&gt; 'btn btn-primary', 'name' =&gt; 'login-button']) ?&gt;
                &lt;/div&gt;

                &lt;div class="g-recaptcha" data-sitekey="6LcYQCETAAAAAJ4AvC9BH6b5lBU0BMMhpd38qI3s"&gt;&lt;/div&gt;

            &lt;?php ActiveForm::end(); ?&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
</pre>
<p style="text-align: left;">Sesuaikan method loginnya <em>*saya membuat method login pada satu class yang sama dengan method verifiyChap</em>.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function actionLogin()
   {
       if (!\Yii::$app-&gt;user-&gt;isGuest) {
           return $this-&gt;goHome();
       }

       $model = new LoginForm();
       if ($model-&gt;load(Yii::$app-&gt;request-&gt;post())) {
           if(SELF::verifiyChap($_POST['g-recaptcha-response'])){
               $model-&gt;login();
           }else{
               echo "chapta belum di verifikasi broo";
               die();
           }
           return $this-&gt;goBack();
       } else {
           return $this-&gt;render('login', [
               'model' =&gt; $model,
           ]);
       }
   }</pre>
<h3 style="text-align: left;">Pengujian</h3>
<p style="text-align: left;">Berikut adalah penampakan dari form loginnya yang sudah terpasang reCaptcha Google.</p>
<div id="attachment_1453" style="width: 432px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1453" decoding="async" loading="lazy" class="wp-image-1453 " src="https://mragus.com/wp-content/uploads/2016/07/blog9.png" alt="Membuat reCaptcha Google untuk validasi sebuah Form di PHP" width="422" height="452" srcset="https://mragus.com/wp-content/uploads/2016/07/blog9.png 527w, https://mragus.com/wp-content/uploads/2016/07/blog9-280x300.png 280w" sizes="(max-width: 422px) 100vw, 422px" /><p id="caption-attachment-1453" class="wp-caption-text">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</p></div>
<p style="text-align: left;">Kita tes melakukan login tanpa mencentang reCaptcha.</p>
<div id="attachment_1454" style="width: 540px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1454" decoding="async" loading="lazy" class="wp-image-1454 " src="https://mragus.com/wp-content/uploads/2016/07/blog10.png" alt="Membuat reCaptcha Google untuk validasi sebuah Form di PHP" width="530" height="375" srcset="https://mragus.com/wp-content/uploads/2016/07/blog10.png 567w, https://mragus.com/wp-content/uploads/2016/07/blog10-300x212.png 300w" sizes="(max-width: 530px) 100vw, 530px" /><p id="caption-attachment-1454" class="wp-caption-text">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</p></div>
<p style="text-align: left;">Centang reCaptcha, masukkan username dan password yang benar, hasilnya sebagai berikut.</p>
<div id="attachment_1455" style="width: 545px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1455" decoding="async" loading="lazy" class="wp-image-1455 " src="https://mragus.com/wp-content/uploads/2016/07/blog11.png" alt="Membuat reCaptcha Google untuk validasi sebuah Form di PHP" width="535" height="490" srcset="https://mragus.com/wp-content/uploads/2016/07/blog11.png 623w, https://mragus.com/wp-content/uploads/2016/07/blog11-300x275.png 300w" sizes="(max-width: 535px) 100vw, 535px" /><p id="caption-attachment-1455" class="wp-caption-text">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</p></div>
<div id="attachment_1456" style="width: 538px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1456" decoding="async" loading="lazy" class="wp-image-1456 " src="https://mragus.com/wp-content/uploads/2016/07/blog12.png" alt="Membuat reCaptcha Google untuk validasi sebuah Form di PHP" width="528" height="186" srcset="https://mragus.com/wp-content/uploads/2016/07/blog12.png 1205w, https://mragus.com/wp-content/uploads/2016/07/blog12-300x106.png 300w, https://mragus.com/wp-content/uploads/2016/07/blog12-768x270.png 768w, https://mragus.com/wp-content/uploads/2016/07/blog12-1024x360.png 1024w" sizes="(max-width: 528px) 100vw, 528px" /><p id="caption-attachment-1456" class="wp-caption-text">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</p></div>
<p style="text-align: left;">Tadaa, reCaptcha berjalan dengan baik. Sekian tulisan dari saya mengenai pembuatan validasi form menggunakan reCaptcha dari Google, semoga dapat bermanfaat.</p>
<p style="text-align: left;">Terimakasih.</p>
<p>The post <a rel="nofollow" href="https://mragus.com/membuat-recaptcha-google-untuk-validasi-sebuah-form-di-php/">Membuat reCaptcha Google untuk validasi sebuah Form di PHP</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mragus.com/membuat-recaptcha-google-untuk-validasi-sebuah-form-di-php/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Membuat draggable modal bootstrap</title>
		<link>https://mragus.com/membuat-draggable-modal-bootstrap/</link>
					<comments>https://mragus.com/membuat-draggable-modal-bootstrap/#respond</comments>
		
		<dc:creator><![CDATA[Agus Wiji Suhariono]]></dc:creator>
		<pubDate>Sat, 25 Jun 2016 15:41:32 +0000</pubDate>
				<category><![CDATA[Yii2 Framework]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yii2]]></category>
		<guid isPermaLink="false">https://mragus.com/?p=1374</guid>

					<description><![CDATA[<p>Assalamualaikum wr wb, pada kesempatan kali ini saya akan share tentang bagaimana cara membuat draggable modal bootstrap. Modal bootstrap memberikan kita kemudahan untuk dapat menampilkan sebuah layout tanpa harus berpindah halaman, sehingga kita dapat memproses beberapa perintah sekaligus dalam satu&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://mragus.com/membuat-draggable-modal-bootstrap/">Membuat draggable modal bootstrap</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: left;">Assalamualaikum wr wb, pada kesempatan kali ini saya akan share tentang bagaimana cara membuat draggable modal bootstrap. <a href="https://mragus.com/modal-bootstrap-yii2/">Modal</a> bootstrap memberikan kita kemudahan untuk dapat menampilkan sebuah layout tanpa harus berpindah halaman, sehingga kita dapat memproses beberapa perintah sekaligus dalam satu <span id="more-1374"></span>halaman. Tapi ada kalanya pada saat kita memanggil modal, kita perlu melihat data pada layout yang awal dan secara default modal bootstrap dapat dipanggil tapi tidak dapat di drag alias tidak dapat di geser.</p>
<h2 style="text-align: left;">Membuat draggable modal bootstrap</h2>
<p style="text-align: left;">Untuk membuat modal bisa digeser-geser kita perlu menambahkan library tambahan dari <a href="https://jqueryui.com/">jQuery Ui</a>. Jquery Ui merupakan library yang di buat menggunakan javascript yang untuk membuat aplikasi kita lebih interaktif. Jquery menyediakan efek-efek pada layout, widget seperti kalender yang bisa kita gunakan untuk melengkapi aplikasi yang kita buat.</p>
<p style="text-align: left;">Kita download terlebih dahulu library dari Jquery Ui dari website resminya <a href="https://jqueryui.com/download/">disini</a>. Pada tutorial kali ini saya menggunakan framework yii2, untuk menggunakan standart library nya, cukup kita kopikan jquery-ui.min.js pada folder web.</p>
<div id="attachment_1383" style="width: 419px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1383" decoding="async" loading="lazy" class="wp-image-1383 size-full" src="https://mragus.com/wp-content/uploads/2016/06/blog.png" alt="Membuat draggable modal bootstrap" width="409" height="180" srcset="https://mragus.com/wp-content/uploads/2016/06/blog.png 409w, https://mragus.com/wp-content/uploads/2016/06/blog-300x132.png 300w" sizes="(max-width: 409px) 100vw, 409px" /><p id="caption-attachment-1383" class="wp-caption-text">Membuat draggable modal bootstrap</p></div>
<h3 style="text-align: left;">Eksekusi Code</h3>
<p style="text-align: left;">Pada AppAsset.php kita tambahkan/ register library tersebut supaya bisa di load saat aplikasi di panggil.</p>
<pre class="lang:default decode:true EnlighterJSRAW">use yii\web\AssetBundle;

/**
 * @author Qiang Xue &lt;qiang.xue@gmail.com&gt;
 * @since 2.0
 */
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
        'css/font-awesome.css',
        'summernote/summernote.css'
    ];
    public $js = [
        'summernote/summernote.js',
        'js/jquery-ui.min.js'
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}</pre>
<p style="text-align: left;"><em><strong>catatan :</strong></em></p>
<p style="text-align: left;">Skrip diatas terdapat library summernote, karena saya menggunakan aplikasi yang sama pada <a href="https://mragus.com/register-asset-pada-yii2/">tutorial sebelumnya</a>.</p>
<p style="text-align: left;">Pada skrip javascript yang di gunakan untuk menampilkan modal kita tambahkan skrip <a href="https://jqueryui.com/draggable/">.draggable()</a>.</p>
<pre class="lang:default decode:true EnlighterJSRAW">$('.modalButton').on('click', function () {
       $('#modal').modal('show').draggable()
               .find('#modalContent')
               .load($(this).attr('value'));
   });</pre>
<p style="text-align: left;">Anda juga dapat menambahkan opsi pada fungsi draggable tersebut, kali ini saya tambahkan opsi agar modal dapat di geser hanya kalau di klik pada modal header.</p>
<pre class="lang:default decode:true EnlighterJSRAW ">$('.modalButton').on('click', function () {
        $('#modal').modal('show').draggable({ handle: ".modal-header" })
                .find('#modalContent')
                .load($(this).attr('value'));
    });</pre>
<p style="text-align: left;">Coba kita lihat hasilnya, posisi normal.</p>
<div id="attachment_1386" style="width: 540px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1386" decoding="async" loading="lazy" class="wp-image-1386 " src="https://mragus.com/wp-content/uploads/2016/06/blog1.png" alt="Membuat draggable modal bootstrap" width="530" height="259" srcset="https://mragus.com/wp-content/uploads/2016/06/blog1.png 1112w, https://mragus.com/wp-content/uploads/2016/06/blog1-300x146.png 300w, https://mragus.com/wp-content/uploads/2016/06/blog1-768x375.png 768w, https://mragus.com/wp-content/uploads/2016/06/blog1-1024x500.png 1024w" sizes="(max-width: 530px) 100vw, 530px" /><p id="caption-attachment-1386" class="wp-caption-text">Membuat draggable modal bootstrap</p></div>
<p style="text-align: left;">draggable :D.</p>
<div id="attachment_1388" style="width: 539px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1388" decoding="async" loading="lazy" class="wp-image-1388 " src="https://mragus.com/wp-content/uploads/2016/06/blog3.png" alt="Membuat draggable modal bootstrap" width="529" height="274" srcset="https://mragus.com/wp-content/uploads/2016/06/blog3.png 1186w, https://mragus.com/wp-content/uploads/2016/06/blog3-300x155.png 300w, https://mragus.com/wp-content/uploads/2016/06/blog3-768x397.png 768w, https://mragus.com/wp-content/uploads/2016/06/blog3-1024x529.png 1024w" sizes="(max-width: 529px) 100vw, 529px" /><p id="caption-attachment-1388" class="wp-caption-text">Membuat draggable modal bootstrap</p></div>
<p style="text-align: left;">Sekian tutorial singkat saya ini mengenai cara Membuat draggable modal bootstrap. Semoga dapat membantu dan bermanfaat, terima kasih.</p>
<p>The post <a rel="nofollow" href="https://mragus.com/membuat-draggable-modal-bootstrap/">Membuat draggable modal bootstrap</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mragus.com/membuat-draggable-modal-bootstrap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Filtering Model pada Gridview di Yii2</title>
		<link>https://mragus.com/filtering-model-pada-gridview-di-yii2/</link>
					<comments>https://mragus.com/filtering-model-pada-gridview-di-yii2/#comments</comments>
		
		<dc:creator><![CDATA[Agus Wiji Suhariono]]></dc:creator>
		<pubDate>Sun, 12 Jun 2016 14:13:46 +0000</pubDate>
				<category><![CDATA[Yii2 Framework]]></category>
		<category><![CDATA[pemrograman]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yii2]]></category>
		<guid isPermaLink="false">https://mragus.com/?p=1311</guid>

					<description><![CDATA[<p>Filtering Model pada Gridview di Yii2. Assalamualaikum wr wb, lama nih saya tidak update blog di karenakan berbagai kesibukan hehe. Masih dengan Yii2, kali ini saya akan sharing cara membuat filter model gridview dengan filter data pada tiap-tiap kolom.&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://mragus.com/filtering-model-pada-gridview-di-yii2/">Filtering Model pada Gridview di Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: left;"><strong>Filtering Model pada Gridview di Yii2</strong>. Assalamualaikum wr wb, lama nih saya tidak update blog di karenakan berbagai kesibukan hehe. Masih dengan <a href="http://www.yiiframework.com/">Yii2</a>, kali ini saya akan sharing cara membuat filter model gridview dengan filter data pada tiap-tiap kolom. Pencarian data pada sebuah table menjadi sangat penting jika kita ingin <span id="more-1311"></span>menemukan dengan benar sesuai dengan kebutuhan yang kita perlukan.</p>
<p style="text-align: left;">Sebenarnya terdapat banyak metode yang bisa digunakan untuk melakukan proses pencarian dalam sebuah data, pencarian data bisa dikatakan berhasil jika dapat menemukan data dengan pencarian yang spesifik. Tetapi terkadang terdapat kesalahan metode atau terlalu banyak query yang di masukkan sehingga hasil dari pencarian data tersebut menjadi kurang tepat.</p>
<h2 style="text-align: left;">Filtering Model pada Gridview di Yii2</h2>
<p style="text-align: left;">Langsung saja kita buat sebuah CRUD menggunakan GII, biar cepet :D, saya menggunakan data kabupaten dan propinsi di Indonesia.</p>
<div id="attachment_1316" style="width: 540px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1316" decoding="async" loading="lazy" class="wp-image-1316 " src="https://mragus.com/wp-content/uploads/2016/06/snapshot1.png" alt="Filtering Model pada Gridview di Yii2" width="530" height="271" srcset="https://mragus.com/wp-content/uploads/2016/06/snapshot1.png 1199w, https://mragus.com/wp-content/uploads/2016/06/snapshot1-300x153.png 300w, https://mragus.com/wp-content/uploads/2016/06/snapshot1-768x393.png 768w, https://mragus.com/wp-content/uploads/2016/06/snapshot1-1024x524.png 1024w" sizes="(max-width: 530px) 100vw, 530px" /><p id="caption-attachment-1316" class="wp-caption-text">Filtering Model pada Gridview di Yii2</p></div>
<p style="text-align: left;">Secara default, gridview akan memberikan fitur pencarian data pada tiap-tiap kolom, tetapi untuk data propinsi terlihat bahwa hanya foreign key dari data propinsi yang terlihat, ini menjadi kurang bagus dan tidak user friendly :D. Untuk menampilkan nama propinsi, terlebih dahulu kita buat active record model relasi dari kabupaten ke propinsi pada model data kabupaten.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function getPropinsi()
    {
        return $this-&gt;hasOne(TbPropinsi::className(), ['propinsi_id' =&gt; 'propinsi_id']);
    }</pre>
<p style="text-align: left;">dan kita ubah pada  table gridviewnya menggunakan class dataColumn</p>
<pre class="lang:default decode:true EnlighterJSRAW">&lt;?= GridView::widget([
       'dataProvider' =&gt; $dataProvider,
       'filterModel' =&gt; $searchModel,
       'columns' =&gt; [
           ['class' =&gt; 'yii\grid\SerialColumn'],

           'kab_id',
           'nama',
           [
               'class' =&gt; 'yii\grid\DataColumn',
               'header' =&gt; 'Nama Propinsi',
               'value' =&gt; 'propinsi.nama'
           ],
           'kab_kodya',

           ['class' =&gt; 'yii\grid\ActionColumn'],
       ],
   ]); ?&gt;</pre>
<p style="text-align: left;">Hasilnya sebagai berikut :</p>
<div id="attachment_1317" style="width: 542px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1317" decoding="async" loading="lazy" class="wp-image-1317 " src="https://mragus.com/wp-content/uploads/2016/06/snapshot2.png" alt="Filtering Model pada Gridview di Yii2" width="532" height="272" srcset="https://mragus.com/wp-content/uploads/2016/06/snapshot2.png 1199w, https://mragus.com/wp-content/uploads/2016/06/snapshot2-300x153.png 300w, https://mragus.com/wp-content/uploads/2016/06/snapshot2-768x393.png 768w, https://mragus.com/wp-content/uploads/2016/06/snapshot2-1024x524.png 1024w" sizes="(max-width: 532px) 100vw, 532px" /><p id="caption-attachment-1317" class="wp-caption-text">Filtering Model pada Gridview di Yii2</p></div>
<p style="text-align: left;">nah yang terjadi adalah fitur pencarian data untuk data propinsi akan hilang, tetapi jangan khawatir. Kita akan munculkan kembali, tetapi menampilkan pencarian menggunakan dropdown dengan memilih data propinsi :D. Terlebih dulu kita buat dulu code untuk memanggil data propinsi pada controller kabupaten, gunakan array helper untuk mengisi data source pada activedropdownlist pada view nanti.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function actionIndex()
   {
       $searchModel = new KabupatenSearch();
       $dataProvider = $searchModel-&gt;search(Yii::$app-&gt;request-&gt;queryParams);

       $propinsi = \common\models\TbPropinsi::find()-&gt;all();
       $propinsi = ArrayHelper::map($propinsi,'propinsi_id','nama');
       
       return $this-&gt;render('index', [
           'searchModel' =&gt; $searchModel,
           'dataProvider' =&gt; $dataProvider,
           'propinsi' =&gt; $propinsi
       ]);
   }</pre>
<p style="text-align: left;">Pada viewnya kita tambahkan properti <em>filter</em> pada data column nama propinsi, dan gunakan array $propinsi sebagai data source nya.</p>
<pre class="lang:default decode:true EnlighterJSRAW">&lt;?= GridView::widget([
        'dataProvider' =&gt; $dataProvider,
        'filterModel' =&gt; $searchModel,
        'columns' =&gt; [
            ['class' =&gt; 'yii\grid\SerialColumn'],

            'kab_id',
            'nama',
            [
                'class' =&gt; 'yii\grid\DataColumn',
                'header' =&gt; 'Nama Propinsi',
                'value' =&gt; 'propinsi.nama',
                'filter' =&gt; Html::activeDropDownList($searchModel, 'propinsi_id',$propinsi,               ['class'=&gt;'form-control'])
            ],
            'kab_kodya',

            ['class' =&gt; 'yii\grid\ActionColumn'],
        ],
    ]); ?&gt;</pre>
<p style="text-align: left;">Refresh kembali view yang digunakan untuk menampilkan data kabupaten tadi.</p>
<div id="attachment_1318" style="width: 542px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1318" decoding="async" loading="lazy" class="wp-image-1318 " src="https://mragus.com/wp-content/uploads/2016/06/snapshot3.png" alt="Filtering Model pada Gridview di Yii2" width="532" height="272" srcset="https://mragus.com/wp-content/uploads/2016/06/snapshot3.png 1199w, https://mragus.com/wp-content/uploads/2016/06/snapshot3-300x153.png 300w, https://mragus.com/wp-content/uploads/2016/06/snapshot3-768x393.png 768w, https://mragus.com/wp-content/uploads/2016/06/snapshot3-1024x524.png 1024w" sizes="(max-width: 532px) 100vw, 532px" /><p id="caption-attachment-1318" class="wp-caption-text">Filtering Model pada Gridview di Yii2</p></div>
<p style="text-align: left;">Tadaa :D, pencarian menggunakan dropdownlist pada gridview Yii2 berhasil running. Untuk kolom kabupaten / kota juga kelihatan tidak user friendly, kita ubah juga filternya menggunakan dropdown. Kita buat dulu fungsi untuk menampilkan data pada kolom dan data source untuk dropdown pencarian.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function getKabKota()
   {
       if($this-&gt;kab_kodya==1){
           return "Kabupaten";
       }elseif($this-&gt;kab_kodya==2){
           return "Kota";
       }else{
           return "unknown";
       }
   }

   public function dataKabKota()
   {
       return [
           '1' =&gt; 'Kabupaten',
           '2' =&gt; 'Kota'
       ];
   }</pre>
<p style="text-align: left;">Tambahkan pada controller untuk array $kabKota.</p>
<pre class="lang:default decode:true EnlighterJSRAW">public function actionIndex()
   {
       $searchModel = new KabupatenSearch();
       $dataProvider = $searchModel-&gt;search(Yii::$app-&gt;request-&gt;queryParams);

       $propinsi = \common\models\TbPropinsi::find()-&gt;all();
       $propinsi = ArrayHelper::map($propinsi,'propinsi_id','nama');
       return $this-&gt;render('index', [
           'searchModel' =&gt; $searchModel,
           'dataProvider' =&gt; $dataProvider,
           'propinsi' =&gt; $propinsi,
           'kabKota' =&gt; TbKabupatenKota::dataKabKota(),
       ]);
   }</pre>
<p style="text-align: left;">Pada view data kabupaten, kita ubah juga filtering dan valuenya.</p>
<pre class="lang:default decode:true EnlighterJSRAW">&lt;?= GridView::widget([
        'dataProvider' =&gt; $dataProvider,
        'filterModel' =&gt; $searchModel,
        'columns' =&gt; [
            ['class' =&gt; 'yii\grid\SerialColumn'],

            'kab_id',
            'nama',
            [
                'class' =&gt; 'yii\grid\DataColumn',
                'header' =&gt; 'Nama Propinsi',
                'value' =&gt; 'propinsi.nama',
                'filter' =&gt; Html::activeDropDownList($searchModel, 'propinsi_id',$propinsi,['class'=&gt;'form-control'])
            ],
            [
                'class' =&gt; 'yii\grid\DataColumn',
                'header' =&gt; 'Kab / Kota',
                'value' =&gt; 'kabKota',
                'filter' =&gt; Html::activeDropDownList($searchModel, 'kab_kodya',$kabKota,['class'=&gt;'form-control'])
            ],

            ['class' =&gt; 'yii\grid\ActionColumn'],
        ],
    ]); ?&gt;</pre>
<h3 style="text-align: left;">Result</h3>
<div id="attachment_1323" style="width: 540px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-1323" decoding="async" loading="lazy" class="wp-image-1323 " src="https://mragus.com/wp-content/uploads/2016/06/snapshot4.png" alt="Filtering Model pada Gridview di Yii2" width="530" height="271" srcset="https://mragus.com/wp-content/uploads/2016/06/snapshot4.png 1199w, https://mragus.com/wp-content/uploads/2016/06/snapshot4-300x153.png 300w, https://mragus.com/wp-content/uploads/2016/06/snapshot4-768x393.png 768w, https://mragus.com/wp-content/uploads/2016/06/snapshot4-1024x524.png 1024w" sizes="(max-width: 530px) 100vw, 530px" /><p id="caption-attachment-1323" class="wp-caption-text">Filtering Model pada Gridview di Yii2</p></div>
<p style="text-align: left;">Filtering data menggunakan textbox dan dropdown berhasil di buat :D, pencarian seperti ini dapat menemukan data secara spesifik dan tidak berat waktu mengeksekusi query, karena query akan melakukan search pada tiap-tiap kolom pada model.</p>
<p style="text-align: left;">Sekian tutorial dari saya, nanti akan di buat lagi filtering menggunakan select 2 untuk mempermudah pencarian data. Terimakasih <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> .</p>
<p>The post <a rel="nofollow" href="https://mragus.com/filtering-model-pada-gridview-di-yii2/">Filtering Model pada Gridview di Yii2</a> appeared first on <a rel="nofollow" href="https://mragus.com">Mr Agus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mragus.com/filtering-model-pada-gridview-di-yii2/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
