Semasa proses pembangunan menggunakan rangka kerja thinkphp, kami sering menghadapi situasi yang memerlukan pengesahan data. thinkphp menyediakan banyak kaedah pengesahan yang mudah, tetapi kadangkala, kami mendapati bahawa tidak kira bagaimana kami memanggilnya, data tidak boleh disahkan secara automatik. kenapa ni?
Pertama sekali, kita perlu memahami cara pengesahan automatik berfungsi dalam thinkphp. Apabila kita mentakrifkan peraturan pengesahan dalam model, ia adalah seperti berikut:
protected $validate = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', 'email' => 'email', ];
Takrifan ini mentakrifkan atribut pengesahan dalam model ini ialah tatasusunan yang mengandungi peraturan yang perlu disahkan. Semasa penggunaan, kami boleh memanggil kaedah $model->validate($data)
untuk mengesahkan data. $data
Parameter ialah data yang perlu disahkan Jika pengesahan lulus, kaedah akan kembali benar, jika tidak, ia akan mengembalikan tatasusunan mesej ralat.
Walau bagaimanapun, dalam beberapa kes, pengesahan automatik tidak dilakukan apabila kami memanggil kaedah validate()
. Ini kerana thinkphp tidak melakukan pengesahan mandatori data secara lalai. Jika kami ingin mengesahkan data, kami perlu memanggil kaedah pengesahan secara manual, seperti yang ditunjukkan di bawah:
// 强制进行自动验证 $model->isUpdate(true)->validate($data);
Di sini, kami menetapkan kaedah isUpdate
kepada benar, menunjukkan bahawa ini ialah operasi kemas kini, jadi kami Anda boleh memaksa pengesahan automatik.
Selain panggilan manual, kami juga boleh mengatasi atribut $updateValidate
dalam model untuk menetapkan pengesahan mandatori, seperti yang ditunjukkan di bawah:
// 在模型中定义强制验证 protected $updateValidate = true;
Dengan cara ini, semasa operasi kemas kini , ia akan secara automatik Pengesahan data telah dilakukan.
Ringkasnya, thinkphp tidak melakukan pengesahan mandatori pada data secara lalai Anda perlu memanggil atau menetapkan atribut pengesahan mandatori dalam model secara manual. Apabila menggunakan pengesahan automatik, anda perlu memberi perhatian untuk membezakan antara operasi baharu dan kemas kini, kerana peraturan pengesahannya mungkin berbeza.
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika thinkphp tidak dapat mengesahkan secara automatik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!