Bekerja dengan Form

 

Penambahan rules pada Model

Bukalah file models/Pegawai.php dan tambahkan rules seperti terlihat dibawah ini:

class Pegawai extends Model{

public $nip;

public $nama;

public $golongan;

public $alamat;

public $jenis_kelamin;

public $hobby;

 

public function rules()

    {

        return [[['nip', 'nama', 'golongan', 'alamat', 'jenis_kelamin', 'hobby'], 'required']];

    }

 

}

Keterangan:

  • Function rules diatas digunakan agar semua data form harus diisi
  • Model harus mempunyai rules jika bekerja dengan form, jika tidak ada rules maka nilainya tidak akan dimasukkan ke dalam model

 

Membuat Form Input

Buatlah sebuah file bernama isiPegawai.php dalam folder views/pegawai dan isi kodenya seperti berikut ini:

<?php

   use yii\bootstrap\ActiveForm;

   use yii\bootstrap\Html;

?>

<div class = "row">

   <div class = "col-lg-5">

      <?php $form = ActiveForm::begin(['id' => 'isiPegawai-form']); ?>

      <?= $form->field($model, 'nip') ?>

      <?= $form->field($model, 'nama') ?>

      <?= $form->field($model, 'golongan')->dropdownList(['1A'=>'1A', '2A'=>'2A', '3A'=>'3A'], ['prompt'=>'Pilih Golongan'] ) ?>

      <?= $form->field($model, 'alamat')->textarea(['rows' => '2']) ?>

   <?= $form->field($model, 'jenis_kelamin')->radioList(['L'=>'L', 'P'=>'P']) ?>

   <?= $form->field($model, 'hobby')->checkboxList([

    'Renang' => 'Renang', 

    'Sepakbola' => 'Sepakbola'

]); ?>

  

      <div class = "form-group">

         <?= Html::submitButton('Simpan', ['class' => 'btn btn-primary',

            'name' => 'isiPegawai-button']) ?>

      </div>

      <?php ActiveForm::end(); ?>

   </div>

</div>

Keterangan:

ActiveForm::begin(['id' => 'isiPegawai-form']) kode ini sama dengan kode HTML <form id="isiPegawai-form" action="/index.php?r=pegawai/isi-pegawai" method="post">

 

Membuat Halaman Untuk Menampilkan Data

Buatlah sebuah file bernama tampil_isi_pegawai.php dalam folder pegawai lalu masukkan kode berikut ini:

<?php   

    use yii\helpers\Html;   

    ?> 

<p>Terima Kasih Kamu sudah menginput data berikut ini:</p>   

    <ul>   

        <li><label>Nip</label>: <?= Html::encode($model->nip) ?></li>   

        <li><label>Nama</label>: <?= Html::encode($model->nama) ?></li>   

        <li><label>Golongan</label>: <?= Html::encode($model->golongan) ?></li>   

     <li><label>Alamat</label>: <?= Html::encode($model->alamat) ?></li>   

  <li><label>Jenis Kelamin</label>: <?= Html::encode($model->jenis_kelamin) ?></li>   

   <li><label>Hobby</label>: <?= join(', ', $model->hobby);?></li>   

    </ul>  

Keterangan:

join(', ', $model->hobby) digunakan untuk menggabung array dari nilai hobby menjadi string dipisahkan oleh tanda koma.

 

Membuat Controller

Bukalah file PegawaiController.php lalu tambahkan action dibawah ini:

public function actionIsiPegawai(){

if ($mPegawai->load(Yii::$app->request->post()) ){

return $this->render('tampil_isi_pegawai', ['model' => $mPegawai]);   

} else {

return $this->render('isiPegawai', ['model' => $mPegawai]);   

}   

}

Keterangan:

$mPegawai->load(Yii::$app->request->post()), kode ini berarti model mPegawai mengisi semua attributnya dengan data yang dikirim oleh form.

 

Hasil

Bukalah browsermu dan masukkan alamat http://absensi.com/index.php?r=pegawai/isi-pegawai maka akan menampilkan form seperti dibawah ini:

 

Masukkanlah data seperti terlihat diatas lalu tekan tombol Simpan maka akan menampilkan hasil seperti terlihat pada gambar dibawah ini:

 

 

Penutup

Sekian dan terima kasih

 

 

 

 

2016 © Fahmi Basya Kartapura