Rumah  >  Artikel  >  rangka kerja php  >  Bincangkan pengetahuan berkaitan tentang penyerahan borang dalam Laravel

Bincangkan pengetahuan berkaitan tentang penyerahan borang dalam Laravel

PHPz
PHPzasal
2023-04-19 10:08:19942semak imbas

Laravel ialah rangka kerja PHP popular yang menyediakan banyak ciri mudah untuk membina aplikasi web dengan cepat. Satu fungsi biasa ialah mengendalikan penyerahan borang. Dalam artikel ini, kami akan mendalami penyerahan borang dalam Laravel.

  1. Buat borang

Pertama, kita perlu mencipta borang dalam halaman web. Laravel menyediakan banyak kaedah membina bentuk, yang paling biasa digunakan ialah menggunakan pandangan Blade untuk menjana borang. Berikut ialah contoh mudah:

<form method="POST" action="{{ route(&#39;submit&#39;) }}">
    @csrf
    <label for="name">姓名:</label>
    <input type="text" id="name" name="name">

    <button type="submit">提交</button>
</form>

Dalam contoh ini, kami menggunakan teg <form> untuk membuat borang dan menetapkan atribut method dan action borang tersebut. methodNyatakan kaedah penyerahan borang Terdapat dua kaedah yang biasa digunakan: GET dan POST. actionNyatakan alamat sasaran untuk penyerahan borang Kita boleh menggunakan fungsi route yang disediakan oleh Laravel untuk menjana alamat penghalaan.

Pada masa yang sama, kami juga perlu menambah medan tersembunyi untuk mengesahkan keselamatan permintaan penyerahan borang. Laravel menyediakan arahan @csrf untuk menjana medan tersembunyi ini.

Dalam borang, kita boleh menambah pelbagai jenis elemen borang, seperti kotak teks, kotak lungsur, butang radio, kotak semak, dsb. Elemen ini boleh dibuat menggunakan tag seperti <input>, <textarea> dan <select>.

  1. Memproses permintaan penyerahan borang

Apabila pengguna menyerahkan borang, kami perlu memprosesnya di bahagian belakang. Laravel menyediakan cara yang mudah untuk mengendalikan permintaan penyerahan borang.

Pertama, kita perlu menambah kaedah untuk mengendalikan permintaan dalam definisi laluan, contohnya:

Route::post('/submit', 'FormController@submit')->name('submit');

Takrifan laluan ini bermakna apabila pengguna mengakses alamat POST dalam Cara /submit, Kaedah FormController dalam submit akan dipanggil untuk diproses. Kami juga memberi laluan ini nama untuk memudahkan penjanaan atribut action borang dalam paparan.

Seterusnya, kita perlu mentakrifkan kaedah FormController dalam submit untuk mengendalikan permintaan penyerahan borang. Contohnya:

use Illuminate\Http\Request;

class FormController extends Controller
{
    public function submit(Request $request)
    {
        $name = $request->input('name');

        // 处理表单数据

        return view('submit-success');
    }
}

Dalam kaedah ini, kita mula-mula mendapatkan objek Request melalui suntikan kebergantungan. Objek ini boleh digunakan untuk mendapatkan data yang dihantar melalui borang.

Sebagai contoh, kami menggunakan $request->input('name') untuk mendapatkan nilai elemen bentuk bernama name.

Seterusnya, kita boleh memproses data borang, seperti menyimpannya dalam pangkalan data. Akhir sekali, kami mengembalikan paparan untuk memaparkan halaman di mana penyerahan borang berjaya.

  1. Pengesahan Borang

Apabila memproses permintaan penyerahan borang, biasanya kami juga perlu mengesahkan data input pengguna untuk memastikan kesahihan data. Laravel menyediakan cara yang sangat mudah untuk melaksanakan pengesahan borang.

Pertama, kita perlu mentakrifkan kaedah FormController dalam rules untuk mentakrifkan peraturan pengesahan. Contohnya:

class FormController extends Controller
{
    public function rules()
    {
        return [
            'name' => 'required|max:255',
            'email' => 'required|email|unique:users',
            'password' => 'required|confirmed|min:6',
        ];
    }
}

Dalam kaedah ini, kami mengembalikan tatasusunan, di mana setiap elemen mewakili peraturan pengesahan untuk elemen borang. Sebagai contoh, peraturan pengesahan untuk elemen name menunjukkan bahawa ia diperlukan dan tidak boleh lebih daripada 255 aksara.

Seterusnya, kita perlu mengubah suai kaedah submit dan menggunakan kaedah validate untuk pengesahan borang. Contohnya:

public function submit(Request $request)
{
    $validatedData = $request->validate($this->rules());

    // 处理验证通过的表单数据

    return view('submit-success');
}

Dalam kaedah ini, kami mula-mula memanggil kaedah rules untuk mendapatkan peraturan pengesahan. Kemudian, kami memanggil kaedah $request->validate untuk pengesahan borang. Jika pengesahan gagal, Laravel akan mengembalikan respons yang mengandungi maklumat ralat secara automatik. Jika pengesahan lulus, Laravel akan mengembalikan data borang yang disahkan, yang boleh kami gunakan dalam pemprosesan seterusnya.

Perlu diingat bahawa kaedah validate secara automatik akan menggunakan peraturan pengesahan yang ditakrifkan dalam kaedah rules untuk pengesahan Jika terdapat mesej ralat, Laravel akan menambah mesej ralat ini secara automatik pada $errors pembolehubah. Kita boleh menggunakan $errors->first('name') dalam paparan untuk mendapatkan mesej ralat pertama untuk elemen borang bernama name.

  1. Ringkasan

Melalui langkah di atas, kami boleh mengendalikan permintaan penyerahan borang dalam Laravel dengan mudah. Pertama, kita perlu mencipta borang dalam paparan dan menggunakan arahan Blade untuk menetapkan elemen borang. Kemudian, kami menambah kaedah untuk mengendalikan permintaan dalam definisi laluan, menggunakan objek Request untuk mendapatkan data borang dan memproses data. Akhir sekali, kita boleh menggunakan kaedah rules untuk menentukan peraturan pengesahan borang dan kaedah validate untuk pengesahan.

Perlu diambil perhatian bahawa Laravel menyediakan banyak cara lain untuk mengendalikan borang, seperti menggunakan kelas Form dan Request objek untuk mencipta borang, menggunakan objek Request untuk pengesahan borang, dsb. Kita boleh memilih cara yang berbeza untuk memproses borang mengikut keperluan tertentu.

Atas ialah kandungan terperinci Bincangkan pengetahuan berkaitan tentang penyerahan borang dalam Laravel. 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