Почему моя функция шоу не работает в Laravel 5.8 - PullRequest
0 голосов
/ 31 марта 2020

Ниже приведен код в моем маршруте

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

Выше не будет работать в моем браузере, он скажет 404 | не найдено с URL

ниже http://127.0.0.1: 8000 / пациентов / 3

Но

, если я изменю свой маршрут на код ниже

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

Я не получу никакой ошибки, фактически он покажет мне вид.

В чем может быть проблема? Я использую Laravel 5,8

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Это ваша 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')); 
}
0 голосов
/ 31 марта 2020

У вас есть опечатка в вашем маршруте, {$patient} должно быть {patient}.

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

Затем, используя связывание с моделью, у вас будет готовая модель $patient в вашем распоряжении. show() метод,

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