Laravel 6 разрешить передачу «ноль» по параметру маршрута - PullRequest
0 голосов
/ 06 марта 2020

Я использую Laravel 5.5 и обновляюсь до Laravel 6.0.
В проекте есть множество кодов, подобных этому:

 route('some_route_name', optional($someobject)->id)

Laravel 5.5 может иметь null пройдено по этому маршруту выше и не выдает ошибку. Теперь он возвращает эту ошибку ниже, потому что большую часть времени значение равно null

Missing required parameters for [Route: some_route_name] 

Теперь я должен заменить все вхождения кода выше на:

 route('some_route_name', optional($someobject)->id ?: 0)

Есть ли Любой способ принять «ноль» в качестве параметров маршрута?
Или, может быть, это вообще плохая практика?

1 Ответ

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

Просто, в вашем маршруте просто поставьте один вопросительный знак

route('some_route_name/{id?}','Controller@show');

Затем в вашем контроллере

public function show($id = null)

Или, если вы связываетесь с моделью, измените свой маршрут на

route('some_route_name/{user?}','Controller@show');

И ваш контроллер будет таким

 public function show(User $user)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...