Notifikasi
Tidak ada notifikasi baru.
Penelusuran Trending (7 hari terakhir)

Simpan validation rules di dalam model

Solusi lain adalah dengan meletakkan aturan validasi di dalam model, yang menurut pendapat saya akan lebih masuk akal, mengingat setiap form element sebenarnya adalah kolom di dalam tabel database Anda.

Seperti biasa, ketika berbicara tentang form, kita juga berbicara tentang validasi. Untuk waktu yang lama saya telah memvalidasi formulir di dalam controller karena cepat dan sederhana

Tetapi setelah saya memiliki controller yang menjadi lebih kompleks dan lebih besar seiring berkembangnya aplikasi. Jadi mengapa tidak menyimpan setidaknya aturan validasi di tempat lain?

Salah satu solusinya adalah dengan menyimpan semua aturan validasi di dalam file konfigurasi, dan mengatur aturan menjadi "grup". Saya akan berbicara tentang metode ini di lain kesempatan.

Solusi lain adalah dengan meletakkan aturan validasi di dalam model, yang menurut pendapat saya akan lebih masuk akal, mengingat setiap form element sebenarnya adalah kolom di dalam tabel database Anda.

class Contacts_model extends CI_Model
{
    public $rules = array(
        'signupform'=>
            array(
                'first_name' => array('field'=>'first_name','label'=>'First name','rules'=>'trim|required|xss_clean'),
                'last_name' => array('field'=>'last_name','label'=>'Last name','rules'=>'trim|xss_clean'),
                'email' => array('field'=>'email','label'=>'Email','rules'=>'trim|valid_email|required|xss_clean'),
                'password' => array('field'=>'password','label'=>'Password','rules'=>'trim|required|xss_clean')
            ),
        'signinform'=>(/*..beberapa aturan lain untuk form lainnya..*/);
    
    //.... method model ...
}
Seperti yang Anda lihat, Anda bisa membuat array yang berisi aturan berbeda tergantung pada form yang digunakan. Array bersifat publik, sehingga dapat diakses langsung oleh controller. Mengenai kata sandi, akan ada banyak orang yang berargumen bahwa, saya tidak bisa hanya memverifikasi kata sandi biasa terhadap database dan kata sandi perlu dienkripsi. Namun ini bukan ruang lingkup posting ini. Saya hanya ingin memberikan contoh tentang bagaimana menjaga aturan di dalam model.

Sekarang, mari kita ke controller, dan cukup memanggil aturan sebagai berikut:

class Contacts extends CI_Controller
{
    public function signup()
    {
        $this->load->model('contacts_model');
        $rules = $this->contacts_model->rules['signupform'];
        $this->form_validation->set_rules($rules);
        if($this->form_validation->run() === FALSE)
        {
            $this->load->view('signup_form');
        }
        else
        {
            // else...
        }
    }
}
Saya tidak akan membuat view, itu bukan poin dari posting ini. Satu-satunya hal yang saya harap Anda mengerti bahwa setiap elemen dari form harus diberi nama persis seperti kunci di dalam array yang kita tentukan dalam model (first_name, last_name, email, kata sandi, dll.).
codeigniter validation
owin
owin
Front-end web developer at