Rumah  >  Artikel  >  rangka kerja php  >  Apakah yang perlu saya lakukan jika saya tidak dapat menerima data semasa menghantar borang dalam thinkphp?

Apakah yang perlu saya lakukan jika saya tidak dapat menerima data semasa menghantar borang dalam thinkphp?

PHPz
PHPzasal
2023-04-11 09:13:31696semak imbas

Apabila menggunakan rangka kerja ThinkPHP untuk penyerahan borang, kadangkala kami menghadapi situasi di mana data borang tidak boleh diterima. Keadaan ini pasti akan menimbulkan kekeliruan dan pening kepala, terutamanya apabila permohonan kami perlu mendapatkan data borang untuk pemprosesan selanjutnya. Jadi mengapa ini berlaku? Bagaimana kita menyelesaikan masalah ini? Seterusnya, artikel ini akan menjawabnya satu persatu untuk anda.

  1. Punca

Situasi yang paling biasa ialah borang tidak disahkan apabila borang diserahkan, mengakibatkan program tidak dapat mendapatkan data borang. Pada ketika ini, kami perlu melakukan beberapa operasi pengesahan mudah pada borang untuk memastikan bahawa data dalam borang boleh diserahkan kepada pelayan dengan betul.

Selain itu, terdapat situasi berikut:

(1) Nama pembolehubah dalam bentuk tidak konsisten dengan nama pembolehubah dalam pengawal tindakan, mengakibatkan ketidakupayaan untuk mendapatkan data

(2) Atribut kaedah borang adalah tidak betul, mengakibatkan ketidakupayaan untuk mendapatkan data borang;

(3) Jika terdapat muat naik fail dalam borang, anda perlu menggunakan $file = request()->file('file '); untuk mendapatkan fail yang dimuat naik.

  1. Penyelesaian

(1) Borang pengesahan

Sebelum menyerahkan borang, kami perlu mengesahkan borang untuk menentukan sama ada pembolehubah dalam borang adalah null. Jika pembolehubah tidak kosong, simpan nilai pembolehubah ke dalam tatasusunan, jika tidak, abaikan pembolehubah. Akhir sekali, hantar tatasusunan sebagai parameter kepada kaedah yang memproses borang.

Kod sampel adalah seperti berikut:

public function dealForm(Request $request){
    $data = array();
    $data['var1'] = $request->param('var1');
    $data['var2'] = $request->param('var2');
    $data['var3'] = $request->param('var3');
    $result = $this->validate($data, [
        'var1|变量名1' => 'require',
        'var2|变量名2' => 'require',
        'var3|变量名3' => 'require'
    ]);
    if (true !== $result) {
        $this->error($result);
    }
    //处理表单数据

}

(2) Semak nama pembolehubah dan atribut kaedah

Sebelum menyerahkan borang, kita perlu menyemak nama pembolehubah dalam borang dan pengawal tindakan Nama pembolehubah adalah konsisten dan atribut kaedah borang adalah betul. Hanya apabila nama pembolehubah dalam borang konsisten dengan nama pembolehubah dalam pengawal tindakan dan atribut kaedah ditetapkan dengan betul boleh data borang berjaya diperolehi.

(3) Muat naik fail

Jika terdapat muat naik fail dalam borang, kami perlu menyimpan fail yang dimuat naik dalam folder yang ditentukan dan menyimpan laluan fail ke pangkalan data. Contoh kod:

$file = request()->file('file');
if ($file) {
    $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
    if ($info) {
        $data['file'] = '/uploads/' . $info->getSaveName();
    } else {
        $this->error($file->getError());
    }
}
  1. Ringkasan

Dengan kaedah di atas, kita boleh menyelesaikan masalah tidak dapat mendapatkan data borang dengan mudah. Adalah penting untuk ambil perhatian bahawa sebelum menyerahkan borang, kami perlu mengesahkan borang untuk memastikan bahawa data dalam borang boleh diserahkan dengan betul kepada pelayan. Dalam projek sebenar, kami juga boleh menggunakan teknologi Ajax untuk melaksanakan penyerahan dan pengesahan borang, dengan itu meningkatkan pengalaman pengguna dan prestasi tapak web.

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika saya tidak dapat menerima data semasa menghantar borang dalam thinkphp?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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