我是Laravel的新手,我正在尝试编辑和删除用户事务,但我被这个错误卡住了:
路由POST不支持update_transaction方法。
支持的方法:得到,头。
这是我的EditTransferController
:
namespace App\Http\Controllers;
use App\Models\transfer;
use App\Models\User;
use App\Providers\RouteServiceProvider;
use Illuminate\Auth\Events\Registered;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules;
use Illuminate\Support\Str;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class EditTransferController extends Controller
{
public function update_transaction(Request $request)
{
$id = $request->id;
$transfer = Transfer::find($id);
return view('Transfers_profile', ['transfer' => $transfer]);
}
public function delete_transaction(Request $request)
{
$transfer = $request->id;
Transfer::find($transfer)->delete();
return view('AllTransfers');
}
}
这是routes/web.php
Route::get('/update_transaction', function (Request $request) {
$transfer = Transfer::find($request->id);
return view('update_transaction', ['transfer' => $transfer]);
})->name('update_transaction');
Route::PUT('/transaction_profile', [EditTransferController::class, 'update_transaction'])->name('post_transaction_profile');
Route::post('/transaction_delete', [EditTransferController::class, 'delete_transaction'])->name('delete_transaction_profile');
1条答案
按热度按时间bzzcjhmw1#
您提供的代码似乎存在一些问题:
1.在routes/web.php文件中,update_transaction路由被定义为GET请求,但处理该请求的控制器方法需要PUT请求。要解决此问题,您应该将路由定义更改为:
路径::get('/更新事务/{id}',[编辑传输控制器::类,'更新事务'])-〉名称('更新事务');
1.在EditTransferController中,update_transaction方法希望在请求中传递id,但您没有从路由传递它。要解决此问题,您应该在调用路由时传递id,如下所示:
返回重定向()-〉路由('更新交易',['id' =〉$id]);
路径::删除('/交易删除/{id}',[编辑传输控制器::类,'删除交易'])-〉名称('删除交易配置文件');
1.在EditTransferController中,delete_transaction方法希望在请求中传递id,但您没有从路由传递它。要解决此问题,您应该在调用路由时传递id,如下所示:
return redirect()-〉路由('delete_transaction_profile',['id' =〉$id]);
1.在update_transaction方法中,您使用的是Transfer模型,但是在use语句中定义为transfer,所以您应该将Transfer改为transfer
1.在delete_transaction方法中,您试图通过传递$request-〉id来删除一条记录,但它应该是$request-〉transfer。
你应该在你的代码中改变上面提到的问题,它应该工作正常。