Rumah > rangka kerja php > ThinkPHP > Apakah yang perlu saya lakukan jika thinkphp tidak dapat mengesahkan secara automatik?

Apakah yang perlu saya lakukan jika thinkphp tidak dapat mengesahkan secara automatik?

PHPz
Lepaskan: 2023-04-10 09:22:29
asal
586 orang telah melayarinya

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',
];
Salin selepas log masuk

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. $dataParameter 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);
Salin selepas log masuk

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan