Функция method_field
Функция method_field генерирует HTML-код скрытого поля
с именем '_method' и значением, соответствующим
переданному HTTP-методу. Она используется в Blade-шаблонах
для создания форм, которые должны отправлять запросы,
отличные от GET и POST. Это необходимо, поскольку
браузеры поддерживают только GET и POST методы,
а Laravel использует скрытое поле для маршрутизации
запросов с другими методами.
В качестве единственного параметра функция принимает
строку с названием HTTP-метода - 'PUT',
'PATCH' или 'DELETE'. Метод вызывается
внутри Blade-шаблонов и возвращает готовую HTML-разметку
скрытого поля.
Синтаксис
{{ method_field($method) }}
Пример
Давайте создадим форму для обновления статьи с использованием метода PUT:
<form action="/articles/{{ $article->id }}" method="POST">
@csrf
{{ method_field('PUT') }}
<input type="text" name="title" value="{{ $article->title }}">
<textarea name="content">{{ $article->content }}</textarea>
<button type="submit">Обновить</button>
</form>
Результат выполнения кода:
<form action="/articles/1" method="POST">
<input type="hidden" name="_token" value="abc123def456">
<input type="hidden" name="_method" value="PUT">
<input type="text" name="title" value="My Article">
<textarea name="content">Content of my article</textarea>
<button type="submit">Обновить</button>
</form>
Пример
Давайте создадим форму для удаления категории с использованием метода DELETE:
<form action="/categories/{{ $category->id }}" method="POST">
@csrf
{{ method_field('DELETE') }}
<p>Вы уверены, что хотите удалить категорию "{{ $category->name }}"?</p>
<button type="submit">Удалить</button>
</form>
Результат выполнения кода:
<form action="/categories/5" method="POST">
<input type="hidden" name="_token" value="abc123def456">
<input type="hidden" name="_method" value="DELETE">
<p>Вы уверены, что хотите удалить категорию "Technology"?</p>
<button type="submit">Удалить</button>
</form>
Пример
Давайте создадим форму для частичного обновления пользователя с использованием метода PATCH:
<form action="/users/{{ $user->id }}" method="POST">
@csrf
{{ method_field('PATCH') }}
<input type="email" name="email" value="{{ $user->email }}">
<input type="checkbox" name="active" @checked($user->active)>
<button type="submit">Обновить email</button>
</form>
Результат выполнения кода:
<form action="/users/3" method="POST">
<input type="hidden" name="_token" value="abc123def456">
<input type="hidden" name="_method" value="PATCH">
<input type="email" name="email" value="john@example.com">
<input type="checkbox" name="active" checked>
<button type="submit">Обновить email</button>
</form>
Смотрите также
-
функция
csrf_field,
которая генерирует скрытое поле для CSRF-защиты -
функция
csrf_token,
которая возвращает текущий CSRF-токен -
функция
old,
которая сохраняет старые значения полей формы -
функция
asset,
которая генерирует URL для публичных ресурсов