ホームページ  >  記事  >  PHPフレームワーク  >  Laravel でのさまざまなリクエスト メソッドの使用と処理について説明します。

Laravel でのさまざまなリクエスト メソッドの使用と処理について説明します。

PHPz
PHPzオリジナル
2023-04-23 09:16:101927ブラウズ

Laravel は、Web アプリケーション開発用の人気のある PHP フレームワークです。開発者が一般的なタスクをより効率的に実行できるようにする多くの便利な機能とツールが提供されます。一般的なタスクの 1 つは、HTTP リクエストの処理です。 Laravel は、GET、POST、PUT、DELETE など、さまざまなリクエスト メソッドをサポートしています。この記事では、Laravel でのさまざまなリクエスト メソッドの使用と処理について説明します。

HTTP リクエストとレスポンス

さまざまなリクエスト メソッドを紹介する前に、HTTP リクエストとレスポンスの基本概念を簡単に紹介します。 HTTP リクエストとは、クライアントからサーバーに送信されるリクエストを指します。これには、リクエストのターゲット URL、リクエスト ヘッダー情報、リクエスト本文 (POST リクエストの場合) が含まれます。リクエストを受信した後、サーバーは対応する処理操作を実行し、HTTP 応答をクライアントに送信します。応答には、応答ヘッダー情報、応答コード、応答本文が含まれます。応答コードは、成功を示す 200、要求されたリソースが見つからないことを示す 404 など、サーバーによるリクエストの処理結果を示します。

GET リクエスト

GET リクエストは、サーバーからデータを取得するために使用されるリクエスト メソッドです。そのリクエスト パラメータは、疑問符 (?) を区切り文字として URL に追加されます。 Laravel では、Route::get() メソッドを使用して GET ルートを定義できます。例:

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

このルートは /users パスと一致し、users という名前のビューを返します。このビューでは、いくつかの HTML タグを使用して GET リクエストを生成できます。

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

ここでは、フォームを使用して GET リクエストを送信します。フォームの action 属性はリクエストの対象 URL を示し、method 属性はリクエストメソッドを GET に指定します。ユーザーがボタンをクリックすると、ブラウザはサーバーに GET リクエストを送信し、URL の後にリクエスト パラメータを追加します。たとえば、フォームに「John」という名前のパラメータを入力すると、要求された URL は /users?name=John になります。サーバー側では、$request オブジェクトを使用してリクエスト パラメータを取得できます。

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

このコードは、$request オブジェクトを使用してリクエスト パラメータを取得する方法を示しています。最初に input() メソッドを呼び出して「name」という名前のパラメータ値を取得し、次にそれを使用してデータベースにクエリを実行し、最後に資格のあるユーザーのリストを返しました。このリストは、以前に定義されたユーザー ビューに渡されて表示されます。

POST リクエスト

POST リクエストは、サーバーにデータを送信するために使用されるリクエスト メソッドです。そのリクエスト パラメータはリクエスト本文に追加され、HTTP メッセージの形式でサーバーに送信されます。 Laravel では、Route::post() メソッドを使用して POST ルートを定義できます。例:

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');
});

このルートは /users パスと一致し、受信した POST リクエスト データをデータベースに保存します。フォームでの POST リクエストの送信は、GET リクエストの送信と似ています。メソッド属性の値を「post」に変更するだけです:

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

ここでは、「_token」ドメイン(@csrf)という名前の隠しフォームも追加しました。 )。この隠しフィールドは、クロスサイトリクエストフォージェリ攻撃を防ぐために使用されるLaravelのCSRF保護機能に必要です。サーバー側では、ルーティングで Illuminate\Support\Facades\URL::csrfToken() メソッドを使用して CSRF トークンを生成する必要があります。

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

このミドルウェアは、リクエストがWeb ミドルウェア、Web ミドルウェアは、リクエストごとに CSRF トークンを自動的に追加します。

PUT リクエストと DELETE リクエスト

PUT リクエストと DELETE リクエストは、サーバー側リソースの更新と削除に使用され、GET リクエストや POST リクエストと同様の方法で使用および処理されます。 Laravel では、Route::put() メソッドと Route::delete() メソッドを使用して、PUT ルートと DELETE ルートを定義できます。例:

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');
});

ここでは、ユーザー情報を更新および削除するための PUT ルートと DELETE ルートを定義します。クライアントでは、JavaScript コードを使用して PUT および 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 => {
   // 处理网络请求错误
});

このコードは、fetch() 関数を使用して PUT および DELETE リクエストを送信する方法を示しています。 PUT リクエストを送信するときは、リクエスト本文のデータを JSON 形式に変換し、リクエスト ヘッダーで Content-Type を application/json として指定します。サーバー側では、findOrFail()メソッドを使用してユーザー情報を取得し、データベース内のレコードを更新または削除します。

概要

Laravel はさまざまな HTTP リクエスト メソッドを提供しており、これによりサーバー側のリソースをより便利に処理できるようになります。 Web アプリケーションを開発する場合、通常、GET リクエストによるデータの取得、POST リクエストによるフォーム データの送信、PUT リクエストと DELETE リクエストによるリソースの更新と削除など、さまざまなタスクを完了するために複数のリクエスト メソッドを使用します。 Laravel のルーティング システムを使用すると、さまざまなリクエスト メソッドに対応するルートを簡単に定義し、サーバー側でリクエスト データと応答結果を処理できます。

以上がLaravel でのさまざまなリクエスト メソッドの使用と処理について説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。