Yii Framework Scenario

alfa6661
- February 06, 2013
0 (0 votes)
Rate :
Penggunaan skenario pada Yii Framework

Scenario merupakan fungsi yang sangat berguna untuk memisahkan tugas-tugas validasi pada setiap model. Contoh, Untuk kasus tertentu field name pada table person harus bersifat required, dan pada kasus lainnya tidak. Hal ini dapat di atur dengan penggunaan scenario.

Menentukan Scenario

Hal pertama adalah untuk menginisialisasi instance Model dengan skenario. Hal ini dapat dilakukan dengan dua cara.

  1. Menggunakan constructor parameter
    $model = new Person('add');
    
  2. Mengatur scenario pada instance CActiveRecord yang sudah ada
    $model = Person::model()->findByPk(1);
    $model->scenario = 'add';
    

Membuat Scenario untuk mengatur validasi.

Seperti disebutkan sebelumnya, kita dapat mengatur validasi yang berbeda untuk beberapa kasus menggunakan scenario. Untuk menentukan pada scenario apa aturan validasi harus dilakukan yaitu dengan menambahkan opsi on pada rules model. Jika opsi ini tidak diatur, aturan validasi akan diterapkan dalam setiap skenario

Contoh :

Pada contoh dibawah ini kita akan mengatur field name agar bersifat required pada skenario add.

public function rules()
{
    return array(
        array('gender', 'required'),
        array('name', 'required', 'on' => 'add'),
        ////
    );
}

Bagaimana menggunakan skenario?

Contoh 1 :

Pada contoh di bawah ini instance dari model Person tidak menggunakan scenario add yang telah di buat pada rules model.

public function actionCreate()
{
    $model=new Person;
    ///
}

Create Person 1

Dapat dilihat pada contoh di atas, field name tidak bersifat required. karena rules required pada field name hanya di set untuk scenario add.

Contoh 2 :

Pada contoh di bawah ini instance dari model Person menggunakan scenario add yang telah di buar pada rules model. Hal ini berarti field name pada tabel person akan bersifat required.

public function actionCreate()
{
    $model=new Person('add'); // scenario add
    ///
}

Create Person 2

Note :

Sekarang ketika Anda memvalidasi input dari pengguna, anda dapat membuat aturan validasi yang berbeda tergantung dari logika bisnis yang anda inginkan.

Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter

– Eric S. Raymond

Have a better explanation?

If you have comments about this post. Please write your comments below

No comments associated with this article