Membuat Database MySQL.
Dalam membuat aplikasi apapun hal terpenting yang harus kamu lakukan pertama kali adalah membuat database, dan dalam tutorial ini saya sudah membuat database MySQL, silahkan baca Tutorial Lengkap Cara Membuat Database MySQL di PhpMyAdmin. Silahkan baca tutorial membuat database mysql dan buatlah sebuah database sesuai kebutuhan aplikasi crud kamu nantinya.Lanjut ke Yii framework.
Membuat Aplikasi CRUD Yii
Jika kamu sudah menginstall framework Yii, langsung saja buka url http://localhost/yii/basic/web/index.php?r=gii, kelebihan dari yii salahsatunya mempunyai gii, yaitu pembuatan code secara otomatis, jadi kita akan membuat Model, Controller, Form, Module dan Extensions serta aplikasi crud dibuat dari gii yii. jika settingan gii kamu belum enable silahkan edit pada folder web/index.php<?php
defined('YII_DEBUG') or define('YII_DEBUG', true); // jika gii false set ke true
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../../common/config/bootstrap.php');
require(__DIR__ . '/../config/bootstrap.php');
$config = yiihelpersArrayHelper::merge(
require(__DIR__ . '/../../common/config/main.php'),
require(__DIR__ . '/../../common/config/main-local.php'),
require(__DIR__ . '/../config/main.php'),
require(__DIR__ . '/../config/main-local.php')
);
$application = new yiiwebApplication($config);
$application->run();
Membuat Model
Sebelum membuat model, setting dulu nama database, user dan password yang sudah kamu buat sebelumnya pada folder common/config/main-local.php.<?phpSelanjutnya kita akan memvuat model, klik pada menu Model Generator. Isikan nama tabel yang akan kita buat aplikasi CRUD, dalam contoh ini saya akan membuat crud dengan nama tabel as_products dan ini hasil model AsProducts.php yang barusan dibuat.
return [
'components' => [
'db' => [
'class' => 'yiidbConnection',
'dsn' => 'mysql:host=localhost;dbname=penjualan', // nama database kamu
'username' => 'root', // user database
'password' => '', // password
'charset' => 'utf8',
],
'mailer' => [
'class' => 'yiiswiftmailerMailer',
'viewPath' => '@common/mail',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => true,
],
],
];
<?phpSelanjutnya kita akan membuat Form dengan gii juag, pilih menu Form Generator untuk membuat Form di yii.
namespace appmodels;
use Yii;
/**
* This is the model class for table "as_products".
*
* @property integer $productID
* @property integer $supplierID
* @property integer $categoryID
* @property integer $brandID
* @property string $productBarcode
* @property string $productName
* @property string $productImei
* @property integer $productBuyPrice
* @property integer $productSalePrice
* @property integer $productDiscount
* @property integer $productStock
* @property string $productNote
* @property string $createdDate
* @property integer $createdUserID
* @property string $modifiedDate
* @property integer $modifiedUserID
*/
class AsProducts extends yiidbActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'as_products';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['supplierID', 'categoryID', 'brandID', 'productBarcode', 'productName', 'productImei', 'productBuyPrice', 'productSalePrice', 'productDiscount', 'productStock', 'productNote', 'createdDate', 'createdUserID', 'modifiedDate', 'modifiedUserID'], 'required'],
[['supplierID', 'categoryID', 'brandID', 'productBuyPrice', 'productSalePrice', 'productDiscount', 'productStock', 'createdUserID', 'modifiedUserID'], 'integer'],
[['productNote'], 'string'],
[['createdDate', 'modifiedDate'], 'safe'],
[['productBarcode'], 'string', 'max' => 20],
[['productName'], 'string', 'max' => 100],
[['productImei'], 'string', 'max' => 50],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'productID' => 'Product ID',
'supplierID' => 'Supplier ID',
'categoryID' => 'Category ID',
'brandID' => 'Brand ID',
'productBarcode' => 'Product Barcode',
'productName' => 'Product Name',
'productImei' => 'Product Imei',
'productBuyPrice' => 'Product Buy Price',
'productSalePrice' => 'Product Sale Price',
'productDiscount' => 'Product Discount',
'productStock' => 'Product Stock',
'productNote' => 'Product Note',
'createdDate' => 'Created Date',
'createdUserID' => 'Created User ID',
'modifiedDate' => 'Modified Date',
'modifiedUserID' => 'Modified User ID',
];
}
}
Membuat Form Generator
Isikan nama Model class yang barusan kamu buat "app\models\AsProducts" dan nama view "products", dan berikut COde yang sudah kamu generate pada views\products.php
<?php
public function actionProducts()
{
$model = new appmodelsAsProducts();
if ($model->load(Yii::$app->request->post())) {
if ($model->validate()) {
// form inputs are valid, do something here
return;
}
}
return $this->render('products', [
'model' => $model,
]);
}
Membuat Controllers
Pada Gii pilih menu Controller Generator dan isikan pada Controller Class "app\controllers\ProductsController" dan generete.Berikut code dari ProductsController.php
<?phpdan views\product\index.php
namespace appcontrollers;
class ProductsController extends yiiwebController
{
public function actionIndex()
{
return $this->render('index');
}
}
<?php
/* @var $this yiiwebView */
?>
<h1>products/index</h1>
<p>
You may change the content of this page by modifying
the file <code><?= __FILE__; ?></code>.
</p>
CRUD Generator
Isiskan "app\models\AsProducts" pada Model Class dan "app\controllers\ProductsController" pada Controller Classjika sukses silahkan buka
http://localhost/advanced/frontend/web/index.php?r=products%2Findex
http://localhost/advanced/frontend/web/index.php?r=products%2Fcreate
Pembuatan aplikasi CRUD sederhana dengan yii framework berhasil, jika ada pertanyaan silahkan berkomentar pada kotak komentar dibawah ya. terima kasih :)