【问题标题】:Laravel 5.2 MethodNotAllowedHttpException cant post dataLaravel 5.2 MethodNotAllowedHttpException 无法发布数据
【发布时间】:2016-06-04 19:03:52
【问题描述】:

我似乎无法在 /cars/{id?}/modify 中发布数据

错误:

in RouteCollection.php line 219 at RouteCollection->methodNotAllowed(array('POST')) in RouteCollection.php line 206
at RouteCollection->getRouteForMethods(object(Request), array('POST')) in RouteCollection.php line 158

路线:

Route::get('/', 'PagesController@home');
Route::get('/about', 'PagesController@about');
Route::get('/contact', 'PagesController@contact');
Route::get('/cars', 'CarsController@index');

Route::get('/cars/{id?}/edit', 'CarsController@edit');
Route::post('/cars/{id?}/modify', 'CarsController@update');

Route::get('/cars/add', 'CarsController@add');
Route::post('/cars/add', 'CarsController@store');

Route::get('/cars/{id?}/delete','CarsController@destroy');

html:

    <form class="form-horizontal" method="post" action="/cars/{{ $car->id }}/modify">
        <input type="hidden" name="_token" value="{!! csrf_token() !!}">
        <input name="_method" type="hidden" value="UPDATE">
        <input type="text" id="color_id" name="color_id" value="{!! $car->color_id !!}">
        <fieldset>
            <legend>Edit Car Information</legend>
            <div class="form-group">
                <label for="title" class="col-lg-2 control-label">Car Name</label>
                <div class="col-lg-10">
                    <input type="text" value="{{ $car->name }}" class="form-control" id="name" placeholder="Car Name">
                </div>
            </div>
            <div class="form-group">
                <label for="title" class="col-lg-2 control-label">Car Color</label>
                <div class="col-lg-10">
                    <div class="btn-group" data-toggle="buttons">
                        <label id="opt1" class="btn btn-primary">
                            <input type="radio" name="color" id="option1" autocomplete="off"> Red
                        </label>
                        <label id="opt2" class="btn btn-primary">
                            <input type="radio" name="color" id="option2" autocomplete="off"> Blue
                        </label>
                        <label id="opt3"  class="btn btn-primary">
                            <input type="radio" name="color" id="option3" autocomplete="off"> Yellow
                        </label>
                        <label id="opt4" class="btn btn-primary">
                            <input type="radio" name="color" id="option4" autocomplete="off"> Green
                        </label>
                        <label id="opt5" class="btn btn-primary">
                            <input type="radio" name="color" id="option5" autocomplete="off"> Black
                        </label>
                        <label id="opt6" class="btn btn-primary">
                            <input type="radio" name="color" id="option6" autocomplete="off"> White
                        </label>
                    </div>
                </div>
            </div>

            <div class="form-group">
                <div class="col-lg-10 col-lg-offset-2">
                    <button class="btn btn-default">Cancel</button>
                    <button type="submit" class="btn btn-primary">Submit</button>
                </div>
            </div>
        </fieldset>
    </form>

【问题讨论】:

  • 删除此&lt;input name="_method" type="hidden" value="UPDATE"&gt; 帖子与更新不同..
  • 使用patch 而不是update

标签: laravel routes laravel-5.2


【解决方案1】:

laravel 中没有更新方法/路由之类的东西。对于编辑,您应该使用PUT


你可以通过改变两件事来解决你的问题:

你的路由方法

Route::post('/cars/{id?}/modify', 'CarsController@update');

Route::put('/cars/{id?}/modify', 'CarsController@update');

在你的表单中

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

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

【讨论】:

    【解决方案2】:

    删除这一行

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

    或如下图所示

    Route::update('/cars/{id?}/modify', 'CarsController@update');
    

    【讨论】:

      猜你喜欢
      • 2016-08-31
      • 2018-01-13
      • 1970-01-01
      • 2018-10-08
      • 2019-01-16
      • 2016-06-23
      • 2016-06-15
      • 2016-06-20
      • 2016-12-26
      相关资源
      最近更新 更多