Php 尝试更新行时出现LAVEL错误“MethodNotAllowedHttpException”

Php 尝试更新行时出现LAVEL错误“MethodNotAllowedHttpException”,php,laravel-5.5,Php,Laravel 5.5,我尝试做一些非常简单的事情:当用户单击按钮时,对应行的列从0更改为1 按钮转到: href="/redeem-coupon/{{ $coupon->coupon_code }}" 该路线设置如下: Route::post('/redeem-coupon/{coupon_code}', 'CouponController@redeemCoupon'); 控制器是: public function redeemCoupon ($coupon_code) { $

我尝试做一些非常简单的事情:当用户单击按钮时,对应行的列从0更改为1

按钮转到:

href="/redeem-coupon/{{ $coupon->coupon_code }}"
该路线设置如下:

Route::post('/redeem-coupon/{coupon_code}', 'CouponController@redeemCoupon');
控制器是:

  public function redeemCoupon ($coupon_code)

    {
        $coupon = \DB::table('coupons')->where('coupon_code', $coupon_code)->first();
        $coupon->redeemed = 1;
        return redirect('/');
    }
我有一些现有的代码,当行“优惠券代码”正常工作时,使用路由显示行中的一些信息,因此除此之外,其他一切都正常工作。单击该按钮将显示
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException

在为POST设置路由时,您正在执行GET请求。要么改变路线

Route::get(.... 

或者切换到使用HTML表单和POST提交

更改路由以拦截get请求而不是post:

Route::get('/redeem-coupon/{coupon_code}', 'CouponController@redeemCoupon');
编辑:


error MethodNotAllowedHttpException表示您正在尝试访问不存在的路由,但有时即使路由设置正确,也会出现此错误,在这种情况下,请确保您的路由位于指向同一控制器的所有其他路由之上,因为其他一些路由可能会拦截您的查询。

我尝试了HTML表单和POSt,但这不会导致行上的任何更新。我试着加入$优惠券->储蓄;但这会导致错误调用未定义的方法stdClass::save,我尝试了$优惠券->更新;但这会导致调用未定义的方法stdClass::updatei如果您将路由放在web.php之上,您是否会收到相同的错误?