PHP Laravel 6 @method("patch")

Пытаюсь сделать на laravel 6 update базы данных конкретного пользователя.

Есть template:

<h2>Edit customer details</h2>

<form action="/customers/{customer}" method="post">

    @method('patch')

    <div>
        <label for="name">Name</label>
        <input type="text" name="name" autocomplete="off" value="{{ old('name')}}">
    </div>

    <div>
        <label for="email">Email</label>
        <input type="text" name="email" autocomplete="off" value="{{ old('email')}}">
    </div>

    {{ csrf_field() }}

    <button>Edit</button>

    @foreach($errors->all() as $error)
        <p style="color: red">{{$error}}</p>
    @endforeach

</form>

Когда попадаю на эту страницу @method("patch") отображается в html как обычный текст между заголовком и input. А при попытке отправить форму выдаёт ошибку MethodNotAllowedHttpException. В чём проблема?

Edit customer details
@method('patch')
Name
Email 

Ответы (1 шт):

Автор решения: ШайтанЯкубович
  1. {{ csrf_field() }} заменить на @csrf и поместить его под открывающий тег <form> и над @method('patch')

  2. замени <button> на нормальную кнопку <input type="submit" name="btn" value="Edit">

  3. вынеси @foreach за пределы формы

→ Ссылка