Директива @method
Директива @method генерирует скрытое поле ввода с именем '_method' и указанным значением. Она используется внутри форм для подмены фактического HTTP-метода запроса, так как HTML-формы поддерживают только методы GET и POST. Первым и единственным параметром передаётся строка с нужным методом: PUT, PATCH или DELETE.
Синтаксис
@method('PUT')
Пример
Давайте создадим форму для обновления статьи с использованием метода PUT:
<form action="/articles/1" method="POST">
@method('PUT')
@csrf
<input type="text" name="title" value="Article 1">
<textarea name="content">Content of article 1</textarea>
<button type="submit">Update</button>
</form>
Результат выполнения кода:
<form action="/articles/1" method="POST">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="9Gg7...">
<input type="text" name="title" value="Article 1">
<textarea name="content">Content of article 1</textarea>
<button type="submit">Update</button>
</form>
Пример
Давайте создадим форму для удаления категории с использованием метода DELETE:
<form action="/categories/5" method="POST">
@method('DELETE')
@csrf
<p>Are you sure you want to delete category "Category 1"?</p>
<button type="submit">Delete</button>
</form>
Результат выполнения кода:
<form action="/categories/5" method="POST">
<input type="hidden" name="_method" value="DELETE">
<input type="hidden" name="_token" value="9Gg7...">
<p>Are you sure you want to delete category "Category 1"?</p>
<button type="submit">Delete</button>
</form>
Пример
Давайте создадим форму для частичного обновления статьи с использованием метода PATCH:
<form action="/articles/3" method="POST">
@method('PATCH')
@csrf
<label>Status: <input type="text" name="status" value="published"></label>
<button type="submit">Publish</button>
</form>
Результат выполнения кода:
<form action="/articles/3" method="POST">
<input type="hidden" name="_method" value="PATCH">
<input type="hidden" name="_token" value="9Gg7...">
<label>Status: <input type="text" name="status" value="published"></label>
<button type="submit">Publish</button>
</form>