如何解决Laravel 5.0上RouteCollection.php中MethodNotAllowedHttpException的问题?

如何解决Laravel 5.0上RouteCollection.php中MethodNotAllowedHttpException的问题?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有一个表单请求更新数据库中的数据 我的控制器 public function edit($id) { // $pinjaman = Pinjaman_Tanker::where('no_admin', $id)->firstOrFail(); return view('pinjaman.edit')->with('pinjaman', $pinjaman); } public function update

我有一个表单请求更新数据库中的数据

我的控制器

public function edit($id)
    {
        //
        $pinjaman = Pinjaman_Tanker::where('no_admin', $id)->firstOrFail();

        return view('pinjaman.edit')->with('pinjaman', $pinjaman);
    }

    public function update(Request $request, $id)
    {
        //

        $pinjaman = Pinjaman_Tanker::where('no_admin', $id)->firstOrFail();
        $validation = Validator::make($request->all(),[
            "tgl_input_pinjam" => "required|date",
            "no_anggota" => "required",
            "jumlah" => "required",
            "kebutuhan" => "string|required",
            "angsuran" => "required",
            "termin" => "required"
        ]);

        if ($validation->fails()){
            return redirect()->back()->withErrors($validation->errors())->withInput();
        }
        $pinjaman -> tgl_input_pinjam = date('Y-m-d', strtotime($request->get('tgl_input_pinjam')));
        $pinjaman -> kebutuhan = $request -> get('kebutuhan');
        $pinjaman -> jumlah = preg_replace('/(?:[.]|\,00)/', '$1', $request->get('jumlah'));
        $pinjaman -> angsuran = preg_replace('/(?:[.]|\,00)/', '$1', $request->get('angsuran'));
        $pinjaman -> termin = $request -> get('termin');
        $pinjaman -> save();

        return redirect(url('pinjaman'));

    }
路线

景色

<form id="edit_pinjaman" method="post" action="{{url('pinjaman/'.$pinjaman->no_admin.'')}}" enctype="multipart/form-data">
<input type="hidden" name="_method" value="put">
<input type="hidden" name="_token" value="{{ csrf_token() }}">

在我点击提交按钮后,它没有重定向到“pinjaman”,而是显示带有以下错误的表单:

RouteCollection.php第207行中的MethodNotAllowedHttpException:

在RouteCollection.php第207行中

在RouteCollection.php第194行中的RouteCollection->methodNotAllowed(数组('PUT'))处

在RouteCollection.php第142行的RouteCollection->getRouteForMethods(对象(请求)、数组('PUT'))中

在Router.php第729行的RouteCollection->match(对象(请求))处

在Router.php第652行的Router->findulote(对象(请求))处

在Router.php第628行的Router->dispatchToRoute(对象(请求))处

在Kernel.php第214行的Router->dispatch(object(Request))处

等等

我已经遵循了Laravel5.0官方文档中的指南,并在互联网上做了一些研究。但这种错误一直在发生

我如何解决这个问题

谢谢

将路线更改为:

Route::post('pinjaman/{no_admin}/{id?}', 'Pinjaman\PinjamanController_Tanker@update');
因为您的表单方法是POST

<form id="edit_pinjaman" method="post"
将路线更改为:

Route::post('pinjaman/{no_admin}/{id?}', 'Pinjaman\PinjamanController_Tanker@update');
因为您的表单方法是POST

<form id="edit_pinjaman" method="post"

因为你的控制器公共函数edit($id),所以你的路径必须是pinjaman/{no_admin}/edit/{id?},真正的url必须是pinjaman/{no_admin}/edit/1->将你的id帖子添加到表单的操作中你能在代码中给出“将你的id帖子添加到表单的操作中”的例子吗?我已经编辑了我的答案,很抱歉,我没有仔细阅读您的问题。根据此官方文档,HTML表单不支持put、patch和delete方法。这就是为什么我使用post作为方法,并使用方法欺骗来欺骗它。但是没用,谢谢你。我测试了你的链接,看到oke:(因为你的控制器公共函数是edit($id),所以你的路由必须是pinjaman/{no_admin}/edit/{id?},真正的url必须是pinjaman/{no_admin}/edit/1->将你的id帖子添加到表单的操作你能举个“将你的id帖子添加到表单的操作”的例子吗在代码中?我已经编辑了我的答案,很抱歉,因为我没有仔细阅读您的问题。根据此官方文档,HTML表单不支持put、patch和delete方法。这就是为什么我使用post as方法并使用方法欺骗来欺骗它。但它不起作用。谢谢。我测试了您的链接,并看到OK:(
redirect()->back())
issue。在If条件中,有redirect()->back()创建问题,因为没有创建“GET”请求路由。和“redirect()->back()函数调用GET request。
redirect()->back()
issue。在If条件中,有redirect()->back()创建问题,因为没有创建“GET”请求路由。和“redirect())->back()函数调用GET请求。