该路由不支持POST方法。支持的方法:GET,HEAD

时间:2019-10-19 15:39:30

标签: php laravel laravel-5.8

我想预约我的病人书。我正在使用2个控制器: PatientController AppointmentController

PatientController.php

public function book()
{
    $patients = new User(); 
    return view('patient.patient_book', compact('patients'));
}

AppointmentController.php

public function store(){
    $patient = new User();
    $appointment = new Appointment();

    $appointment->user_id = $patient->id;
    $appointment->appointment_date = request('date_booking');
    $appointment->slot = request('slot');
    $appointment->branch = request('branch');
    $appointment->note = request('note');
    $appointment->save();
    return redirect('/patient/report_list');
}

关于我的路线

Route::prefix('patient')->group(function(){
     Route::get('/patient_book', 'PatientController@book');
     Route::post('/report_list', "AppointmentController@store");
});

我还将关系包含在用户模型中

protected $guarded = [];

public function appointments(){

    return $this->hasMany(Appointment::class);
}

关于约会模型;

protected $guarded = [];

public function patient(){
    return $this->belongsTo(User::class);
}

在我的 Patient_book.blade.php 内;

<form method = "POST" action = "/patient/report_list">

提交表单后,需要将其重定向到report_list.blade.php,新提交的约会将在该页面上列出。我遵循了《 Laracasts》中的教程,其中使用的示例是Project和Task。但是,当我尝试运行它时收到此错误。

  

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

我检查了其他答案,但似乎无济于事。请帮助我,因为我还很陌生并且对Laravel感到困惑。谢谢。

1 个答案:

答案 0 :(得分:0)

错误在这里

return redirect('/patient/report_list');

您无法将301重定向响应返回到POST路由,它必须是GET路由

您可能希望改为重定向到上一页

return back();

希望这会有所帮助