为什么我的显示功能在 Laravel 5.8 中不起作用

Why is my show function not working in Laravel 5.8

下面是我路由中的代码

Route::get('patients/{$patient}/','PatientController@show');

以上内容在我的浏览器中不起作用,它会显示 404 |未找到 url

低于http://127.0.0.1:8000/patients/3

但是

如果我将路线更改为以下代码

Route::get('patients','PatientController@show');

我不会得到任何错误,事实上它会为我显示视图。

可能是什么问题?我正在使用 Laravel 5.8

您的路线有错字,{$patient} 应该是 {patient}

Route::get('patients/{patient}/','PatientController@show');

然后使用模型路由绑定,您将在 show() 方法中为您准备好 $patient 模型,

public function show(Patient $patient){ 
    return view('patients.show', ['patient' => '$patient']); 
}

这是你的route问题。

Route::get('/patients/{patient?}',         'PatientController@show');

你可以这样使用url

http://127.0.0.1:8000/patients/3

http://127.0.0.1:8000/patients

而且你的控制器也很简单

public function show(Patient $patient=null){ 
    return view('patients.show',compact('patient')); 
}