Rumah  >  Artikel  >  rangka kerja php  >  Bincangkan penggunaan dan pemprosesan pelbagai kaedah permintaan dalam Laravel

Bincangkan penggunaan dan pemprosesan pelbagai kaedah permintaan dalam Laravel

PHPz
PHPzasal
2023-04-23 09:16:101879semak imbas

Laravel ialah rangka kerja PHP yang popular untuk pembangunan aplikasi web. Ia menyediakan banyak ciri dan alatan mudah yang membolehkan pembangun menyelesaikan tugas biasa dengan lebih cekap. Salah satu tugas biasa ialah mengendalikan permintaan HTTP. Laravel menyokong pelbagai kaedah permintaan yang berbeza, termasuk GET, POST, PUT, DELETE, dll. Dalam artikel ini, kami akan meneroka penggunaan dan pemprosesan pelbagai kaedah permintaan dalam Laravel.

Permintaan dan respons HTTP

Sebelum kami mula memperkenalkan pelbagai kaedah permintaan, mari kita perkenalkan secara ringkas konsep asas permintaan dan respons HTTP. Permintaan HTTP merujuk kepada permintaan yang dihantar oleh klien kepada pelayan, yang termasuk URL sasaran permintaan, maklumat pengepala permintaan dan badan permintaan (untuk permintaan POST). Selepas menerima permintaan, pelayan akan melakukan operasi pemprosesan yang sepadan dan kemudian menghantar respons HTTP kepada klien. Respons termasuk maklumat pengepala respons, kod respons dan badan respons. Kod respons menunjukkan hasil pemprosesan permintaan pelayan, seperti 200 menunjukkan kejayaan, 404 menunjukkan bahawa sumber yang diminta tidak dapat ditemui, dsb.

GET request

GET request ialah kaedah permintaan yang digunakan untuk mendapatkan data daripada pelayan. Parameter permintaannya akan dilampirkan pada URL dengan tanda soal (?) sebagai pembatas. Dalam Laravel, kita boleh menggunakan kaedah Route::get() untuk menentukan laluan GET. Contohnya:

Route::get('/users', function () {
    return view('users');
});

Laluan ini akan sepadan dengan laluan /users dan mengembalikan paparan bernama pengguna. Dalam paparan ini, kami boleh menggunakan beberapa teg HTML untuk menjana permintaan GET:

<form action="/users" method="get">
   <button type="submit">Get Users</button>
</form>

Di sini kami menggunakan borang untuk menghantar permintaan GET. Atribut tindakan bagi borang menunjukkan URL sasaran permintaan dan atribut kaedah menentukan kaedah permintaan sebagai GET. Apabila pengguna mengklik butang, penyemak imbas akan menghantar permintaan GET ke pelayan dan menambah parameter permintaan selepas URL. Contohnya, jika kami memasukkan parameter bernama "John" dalam borang, URL yang diminta akan menjadi /users?name=John. Di bahagian pelayan, kita boleh menggunakan objek $request untuk mendapatkan parameter permintaan:

Route::get('/users', function (Illuminate\Http\Request $request) {
   $name = $request->input('name');
   // 查询数据库,返回符合条件的用户列表
   $users = App\User::where('name', $name)->get();
   return view('users', ['users' => $users]);
});

Kod ini menunjukkan cara menggunakan objek $request untuk mendapatkan parameter permintaan. Kami mula-mula memanggil kaedah input() untuk mendapatkan nilai parameter bernama "nama", kemudian menggunakannya untuk menanyakan pangkalan data, dan akhirnya mengembalikan senarai pengguna yang layak. Senarai ini akan dihantar ke paparan pengguna yang ditakrifkan sebelum ini untuk paparan.

POST request

POST request ialah kaedah permintaan yang digunakan untuk menghantar data ke pelayan. Parameter permintaannya akan dilampirkan pada badan permintaan dan dihantar ke pelayan dalam bentuk mesej HTTP. Dalam Laravel, kita boleh menggunakan kaedah Route::post() untuk menentukan laluan POST. Contohnya:

Route::post('/users', function (Illuminate\Http\Request $request) {
   $name = $request->input('name');
   $email = $request->input('email');
   // 将用户数据保存到数据库
   $user = new App\User;
   $user->name = $name;
   $user->email = $email;
   $user->save();
   return redirect('/users');
});

Laluan ini akan sepadan dengan laluan /users dan menyimpan data permintaan POST yang diterima ke pangkalan data. Cara untuk menghantar permintaan POST dalam borang adalah serupa dengan menghantar permintaan GET Cuma tukar nilai atribut kaedah kepada "siaran":

<form action="/users" method="post">
   @csrf
   <input type="text" name="name" placeholder="Name">
   <input type="email" name="email" placeholder="Email">
   <button type="submit">Add User</button>
</form>

Di sini kami turut menambah nama "_token" Sembunyikan. medan borang (@csrf). Medan tersembunyi ini diperlukan untuk ciri perlindungan CSRF Laravel, yang digunakan untuk menghalang serangan pemalsuan permintaan merentas tapak. Di bahagian pelayan, kita perlu menggunakan kaedah IlluminateSupportFacadesURL::csrfToken() dalam penghalaan untuk menjana token CSRF:

Route::post('/users', function () {
   return view('users');
})->middleware('web');

Perisian tengah ini menunjukkan bahawa permintaan itu perlu diproses oleh perisian tengah web, dan perisian tengah web akan menambahkan token CSRF secara automatik pada setiap permintaan.

PUT dan DELETE permintaan

PUT dan DELETE permintaan digunakan untuk mengemas kini dan memadam sumber bahagian pelayan ia digunakan dan diproses dengan cara yang serupa dengan permintaan GET dan POST. Dalam Laravel, kita boleh menggunakan kaedah Route::put() dan Route::delete() untuk menentukan laluan PUT dan DELETE. Contohnya:

Route::put('/users/{id}', function (Illuminate\Http\Request $request, $id) {
   $user = App\User::findOrFail($id);
   $user->name = $request->input('name');
   $user->email = $request->input('email');
   $user->save();
   return redirect('/users');
});

Route::delete('/users/{id}', function ($id) {
   $user = App\User::findOrFail($id);
   $user->delete();
   return redirect('/users');
});

Di sini kami mentakrifkan laluan PUT dan laluan DELETE untuk mengemas kini dan memadam maklumat pengguna. Dalam klien, kami boleh menggunakan kod JavaScript untuk menghantar permintaan PUT dan DELETE:

// 发送PUT请求
fetch('/users/1', {
   method: 'PUT',
   headers: {
      'Content-Type': 'application/json'
   },
   body: JSON.stringify({
      name: 'John Smith',
      email: 'john@example.com'
   })
}).then(response => {
   if (response.ok) {
      // 成功处理响应
   } else {
      // 处理响应错误
   }
}).catch(error => {
   // 处理网络请求错误
});

// 发送DELETE请求
fetch('/users/1', {
   method: 'DELETE'
}).then(response => {
   if (response.ok) {
      // 成功处理响应
   } else {
      // 处理响应错误
   }
}).catch(error => {
   // 处理网络请求错误
});

Kod ini menunjukkan cara menggunakan fungsi fetch() untuk menghantar permintaan PUT dan DELETE. Apabila menghantar permintaan PUT, kami menukar data dalam badan permintaan kepada format JSON dan menentukan Jenis Kandungan sebagai aplikasi/json dalam pengepala permintaan. Di bahagian pelayan, kami memperoleh maklumat pengguna dan mengemas kini atau memadam rekod dalam pangkalan data dengan menggunakan kaedah findOrFail().

Ringkasan

Laravel menyediakan pelbagai kaedah permintaan HTTP yang berbeza, yang membolehkan kami memproses sumber bahagian pelayan dengan lebih mudah. Apabila membangunkan aplikasi web, kami biasanya menggunakan berbilang kaedah permintaan untuk menyelesaikan tugasan yang berbeza, seperti mendapatkan data melalui permintaan GET, menyerahkan data borang melalui permintaan POST dan mengemas kini serta memadamkan sumber melalui permintaan PUT dan permintaan DELETE. Menggunakan sistem penghalaan Laravel, kami boleh dengan mudah mentakrifkan laluan yang sepadan untuk kaedah permintaan yang berbeza, dan memproses data permintaan dan keputusan tindak balas di bahagian pelayan.

Atas ialah kandungan terperinci Bincangkan penggunaan dan pemprosesan pelbagai kaedah permintaan 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