【问题标题】:Getting 302 error after submitting POST form in Laravel在 Laravel 中提交 POST 表单后出现 302 错误
【发布时间】:2020-02-09 18:43:57
【问题描述】:

我得到:

此路由不支持 GET 方法。支持的方法:POST。

提交表单后出现 302 错误。

我试过了

php artisan route:cache

在 route::get 和 route::post 之间切换

TranscationController.php

public function store(TransactionRequest $request)
{
   $suser = User::findOrFail($request->s_uid);
   $ruser = User::where('uid',$request->r_uid)->first();
   //...
   //...
   //...
   return redirect()->route('transfer');
}

web.php

 Route::get('/', 'HomeController@home')->name('login');
 Route::get('/contact', 'HomeController@contact')->name('contact');
 Route::get('/home', 'HomeController@home')->name('home');
 Route::get('/transfer', 'HomeController@transfer')->name('transfer');
 Route::get('/account', 'HomeController@account')->name('account');
 Route::get('/transactionHistory/{id}', 'TransactionController@show')- 
 >name('show');
 Route::post('/transactions', 'TransactionController@store')- 
 >name('store');
 //Route::resource('transaction', 'TransactionController');
 Auth::routes();

transfer.blade.php

    <form action="{{ route('store') }}" method="POST" >
      @csrf 
      <input type="text" id="UID" value="{{old('r_uid')}}"class="" 
      name="r_uid" placeholder="UID">
      <input type="number" id="amount" class="" value="{{old('amount')}}" 
      name="amount" placeholder="0.0$">
      <input type="hidden" name="s_uid" value="{{Auth::id()}}">
      <input type="submit" class="" value="Send">
    </form>

我还注意到,如果我使用 route::resource,在 302 错误上我没有收到 MethodNotAllowed 错误,我会重定向到 TransactionController 索引方法

【问题讨论】:

  • 302 不是错误,而是重定向。

标签: php laravel post routing


【解决方案1】:

请您再试一次好吗-

web.php

Route::resource('transactions', 'TransactionController');

transfer.blade.php

<form action="{{ route('transactions.store') }}" method="POST" >
  @csrf 
  <input type="text" id="UID" value="{{old('r_uid')}}"class="" 
  name="r_uid" placeholder="UID">
  <input type="number" id="amount" class="" value="{{old('amount')}}" 
  name="amount" placeholder="0.0$">
  <input type="hidden" name="s_uid" value="{{Auth::id()}}">
  <input type="submit" class="" value="Send">
</form>

然后缓存清除-

php artisan cache:clear
php artisan route:cache
php artisan config:clear
php artisan view:clear

【讨论】:

  • 不,试过了,我至少没有收到 InavlidMethod 错误,但我仍然收到 302
  • 如果我只使用我唯一使用的 'store' 和 'show' 方法,我仍然会收到 InvalidMethod 错误
  • 从您的终端运行php artisan route:list,您将找到整个路线列表。
  • 你找到路线列表了吗?
  • 请访问 laravel resource 控制器 - laravel.com/docs/6.x/controllers#resource-controllers
猜你喜欢
  • 2017-10-23
  • 2018-09-16
  • 2021-01-12
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多