まず、以下の手順に従って、リソースコントローラを作成します。
-
Laravelのコマンドラインインターフェース(CLI)を使用して、リソースコントローラを生成します。ターミナルで以下のコマンドを実行します。
php artisan make:controller ResourceController --resource
これにより、
ResourceController
という名前のリソースコントローラが作成されます。 -
ResourceController
内には、destroy
メソッドが用意されています。このメソッドは、リソースを削除するための処理を記述する場所です。以下のようにdestroy
メソッドを編集します。public function destroy($id) { // 削除のロジックを記述する }
ここで、
$id
は削除するリソースのIDです。削除のロジックは、具体的な要件に応じて実装してください。 -
ルートファイル(
routes/web.php
またはroutes/api.php
)に、リソースコントローラのルートを定義します。以下のようにルートを追加します。use App\Http\Controllers\ResourceController; Route::delete('/resources/{id}', [ResourceController::class, 'destroy']);
このルートは、
DELETE
リクエストが/resources/{id}
に送信された場合に、ResourceController
のdestroy
メソッドを呼び出すように設定します。
以上の手順で、リソースコントローラの削除機能が準備されました。次に、Ajaxを使用して削除リクエストを送信する方法について説明します。
-
JavaScriptを使用して、Ajaxリクエストを作成します。以下は、jQueryを使用した例です。
$(document).on('click', '.delete-button', function(e) { e.preventDefault(); var resourceId = $(this).data('id'); $.ajax({ url: '/resources/' + resourceId, type: 'DELETE', success: function(response) { // 削除が成功した場合の処理 }, error: function(xhr) { // エラーが発生した場合の処理 } }); });
上記の例では、
.delete-button
というクラスを持つ要素がクリックされたときに、Ajaxリクエストが発行されます。リソースのIDは、data-id
属性から取得します。Ajaxリクエストの
url
は、リソースのIDを含んだ削除のエンドポイントに設定します。type
はDELETE
となります。success
コールバック関数は、削除が成功した場合に実行されます。ここで、必要な処理(例: 成功メッセージの表示、リソースの一覧の再読み込みなど)を記述します。error
コールバック関数は、エラーが発生した場合に実行されます。ここで、エラーメッセージの表示やエラーハンドリングなどを行います。