Laravel更新请求方法NotAllowedException

Laravel Update Request MethodNotAllowedException

我有一个名为 CustomerController 的 class 具有更新功能:

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,我找不到任何解决方案。 截图: 非常感谢!

路线确实存在:

更新时,因此使用 PUT 方法,您的表单中必须有一个隐藏的输入,如下所示:

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

表格仍然是 post

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

或者如@kerbholz 所述(非常感谢),您可以使用助手

{{ method_field('PUT') }}

用 put 和 patch 改变你的路由方法

您收到此错误的主要原因是您的表单提交方法与路由方法不同。

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