我想预约我的病人书。我正在使用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感到困惑。谢谢。
答案 0 :(得分:0)
错误在这里
return redirect('/patient/report_list');
您无法将301重定向响应返回到POST路由,它必须是GET路由
您可能希望改为重定向到上一页
return back();
希望这会有所帮助