{category}

Laravel - CSRF保護

@method

アット メソッド(フォームとCSRF

意味 HTTPメソッドの指定


@methodとは?

@methodはLaravelのBladeテンプレートで使用されるディレクティブです。HTMLフォームでPUT、PATCH、DELETEなどのHTTPメソッドを指定するために使用されます。

@methodの具体的な使い方

ユーザー情報更新フォーム

<form action="/users/1" method="POST">
    @csrf
    @method('PUT')
    <div>
        <label for="name">名前:</label>
        <input type="text" id="name" name="name" value="{{ $user->name }}" required>
    </div>
    <div>
        <label for="email">メールアドレス:</label>
        <input type="email" id="email" name="email" value="{{ $user->email }}" required>
    </div>
    <button type="submit">更新</button>
</form>

この例では、ユーザー情報を更新するフォームで@methodディレクティブを使用しています。@method('PUT')を指定することで、フォームのHTTPメソッドをPUTに設定しています。これにより、LaravelのRESTfulなルーティングシステムと連携して、適切なコントローラーメソッドにリクエストを送信できます。

リソース削除フォーム

<form action="/posts/{{ $post->id }}" method="POST">
    @csrf
    @method('DELETE')
    <p>本当に「{{ $post->title }}」を削除しますか?</p>
    <button type="submit">削除する</button>
</form>

この例では、ブログ記事を削除するフォームで@methodディレクティブを使用しています。@method('DELETE')を指定することで、フォームのHTTPメソッドをDELETEに設定しています。これにより、LaravelのRESTfulなルーティングシステムと連携して、適切な削除処理を行うコントローラーメソッドにリクエストを送信できます。

@methodに関するよくある質問

Q. @methodの使用目的は?
A. @methodディレクティブは、HTMLフォームでPUT、PATCH、DELETEなどのHTTPメソッドを指定するために使用します。HTMLフォームは通常GETとPOSTのみをサポートするため、これらの他のHTTPメソッドを使用する場合に必要です。
Q. @methodと@csrfの違いは?
A. @methodはHTTPメソッドを指定するためのものであり、@csrfはCSRF保護のためのトークンを生成します。両方とも多くの場合フォーム内で使用されますが、役割が異なります。
Q. @methodを使わずにPUTは可能?
A. @methodを使わずにPUTリクエストを送信することは困難です。LaravelはHTMLフォームの制限を克服するために@methodを提供しており、これを使用することでRESTfulなルーティングを簡単に実装できます。

@methodが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Laravelの@methodや$errors->all()、$errors->first()、old()、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Laravelを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Laravelはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

$errors->all()

全エラーメッセージを取得

種類: フォーム処理

$errors->first()

最初のエラーメッセージ取得

種類: フォーム処理

old()

前回の入力値を取得

種類: フォーム処理

$dispatchesEvents

イベント発火を定義するプロパティ

種類: モデルイベント

@if

条件分岐の開始

種類: 制御構造