【问题标题】:MethodNotAllowedHttpException laravel 5MethodNotAllowedHttpException laravel 5
【发布时间】:2017-03-04 18:57:16
【问题描述】:

为什么会出现这个错误?

路线:

Route::group(['prefix'=>'admin','middleware'=>'auth'],function(){
    Route::get('/',['uses'=>'Admin\IndexController@index','as'=>'adminIndex']);
    Route::resource('/products','Admin\ProductController');
});

表格:

{!! Form::open(['url' => route('admin.products.edit',['products'=>$product->id]),'class'=>'form-horizontal','method'=>'POST']) !!}
                    {{ method_field('EDIT')}}
                    {!! Form::button('Edit', ['id'=>'submit','type'=>'submit']) !!}
                    {!! Form::close() !!}

另外,当我尝试通过键入 php artisan route:list 来获取路线列表时,我收到了错误:

[Symfony\Component\HttpKernel\Exception\HttpException]

有什么问题?

【问题讨论】:

    标签: php laravel routes resources


    【解决方案1】:

    我认为您在 admin 前缀下的资源不采用 admin 前缀。所以你仍然必须在没有管理员前缀的情况下使用它。此外,您使用的是 'url' 而不是 'route'。

    {!! Form::open(['url' => '/admin/products/'.$product->id.'/edit'),'class'=>'form-horizontal','method'=>'POST']) !!}
    

    如果你想继续使用路线

    {!! Form::open(['route' => ['products.edit', 'products'=>$product->id], 'class'=>'form-horizontal','method'=>'POST']) !!}
    

    如果您尝试更新

    {!! Form::model($product, ['method' => 'PATCH', 'route' => ['products.update', $product->id], 'class' => 'form-horizontal' ]) !!}
    

    【讨论】:

    • 这不起作用,因为编辑方法使用 GET,而不是 POST。
    • 用更新替换编辑。如果您正在尝试更新。
    【解决方案2】:

    由于编辑方法使用 GET,请将代码更改为:

    {!! Form::open(['route' => ['admin.products.edit', $product->id], 'class' => 'form-horizontal', 'method' => 'GET']) !!}
    {!! Form::submit('Edit', ['id' => 'submit']) !!}
    {!! Form::close() !!}
    

    另外,既然是 GET,你可以使用简单的链接:

    <a href="{{ route('admin.products.edit', $product->id) }}">
        <button class="btn" id="submit">Edit</button>
    </a>
    

    【讨论】:

      【解决方案3】:

      往下看应该是使用路由 'as'=>'admin.products.edit' 并获取 id 也重定向到控制器功能编辑产品

      Route::group(['prefix'=>'admin','middleware'=>'auth'],function(){
      
      
      Route::get('/edit/{id}/product',
                [
                  'uses'=>'Admin\IndexController@index',
                  'as'=>'admin.products.edit'
                ]);
      
      Route::resource('/products','Admin\ProductController');
      });
      

      【讨论】:

        猜你喜欢
        • 2015-09-11
        • 2015-08-30
        • 2016-05-27
        • 1970-01-01
        • 1970-01-01
        • 2015-07-28
        • 2015-09-22
        • 2016-05-23
        • 2016-08-30
        相关资源
        最近更新 更多