Метод запроса на обновление LaravelNotAllowedException

У меня есть класс под названием CustomerController с функцией обновления:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
//use app\model\Customer;
use Illuminate\Support\Facades\View;
use App\model\Customer;

class CustomerController extends Controller
{
   public function getAllCustomer()
   {
       return Customer::get();
   }

public function addNewCustomer(Request $request)
{
    $validatedData = $request->validate([
        'Title' => 'required',
        'Name' => 'required|max:255',
        'Surname' => 'required|max:255',
        'Email' => 'required',
        'Phone' => 'required',
        'Password' => 'required',
        'dateofBirth' => 'required'
    ]);

    return \app\model\Customer::create($request->all());
}


public function update (Request $request , Customer $id)
{
    $id->update($request->all());
}

Это маршрут:

Route::put('Customer/{id}' , 'CustomerController@update');

Но в настоящее время я получаю исключение MethodNotAllowedException, я не мог найти никакого решения. Скриншот: Метод запроса на обновление LaravelNotAllowedException Большое спасибо!

Маршрут действительно существует: Метод запроса на обновление LaravelNotAllowedException

Вы пробовали к php artisan route:list, чтобы узнать, доступен ли этот маршрут? (Кеширование !!!). Или php artisan route:cache для очистки и кеширования маршрутов ?!

brombeer 08.08.2018 11:56

@Kerbholz Да есть, добавил скриншот

Boby 08.08.2018 12:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
64
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Поэтому при обновлении с использованием метода PUT у вас должен быть скрытый ввод в вашей форме, как показано ниже:

<input type = "hidden" name = "_method" value = "PUT">

форма по-прежнему будет постом

<form action = "/" method = "POST">

Или, как упоминалось @kerbholz (большое спасибо), вы можете использовать помощник

{{ method_field('PUT') }}

Или используйте {{ method_field('PUT') }} в своем Blade. От Помощники Laravel

brombeer 08.08.2018 12:00

О, никогда не знал об этом, большое спасибо. Добавил это к моему ответу с вашим кредитом

Munch 08.08.2018 12:01

Спасибо, никаких проблем, кстати, это PUT, а не DELETE;)

brombeer 08.08.2018 12:04

Не имеет никакого отношения к тому, что ваш URI является заглавной буквой C для клиента, поскольку ни один из ваших маршрутов не следует этому?

Munch 08.08.2018 12:13

Спасибо, я этого не видел, теперь почтальон сообщает мне, что срок действия страницы истек из-за бездействия (ошибка 419).

Boby 08.08.2018 12:20

Хорошо, пометьте мой вопрос как правильный, если это помогло

Munch 08.08.2018 12:26

Конечно, это помогло мне, но я все еще получаю ошибку 419, у вас есть какие-нибудь советы?

Boby 08.08.2018 12:58
getstatuscode.com/419 убедитесь, что ваша авторизация работает правильно и Почтальон отправляет действительный токен
Munch 08.08.2018 13:02

Большое спасибо, мне нужно было поставить исключение в VerifyCsrfToken, теперь я не получаю сообщение об ошибке, но на самом деле он не обновляется, ничего не происходит

Boby 08.08.2018 13:07

Вы знаете, как ввести параметры в почтальон? Я подумал, что мне нужно сделать это в теле, например: {"name": "Hans"}

Boby 08.08.2018 13:16

измените метод маршрута с помощью put и patch

Основная причина, по которой вы получаете эту ошибку, заключается в том, что ваш метод отправки формы отличается от вашего метода маршрута.

Route::match(['put', 'patch'], '/Customer/{id}','CustomerController@update');

Другие вопросы по теме