Хотя другие говорят о том, что PHP не является языком со строгой типизацией, нет ответа на вопрос, зачем нужен хинтинг типа.
В вашем приложении Laravel происходит следующее.Laravel попытается запустить метод getSizes
в вашем контроллере, разрешив любые напечатанные аргументы из «Контейнера (службы)» , также известного как IoC.Если он не находит привязок, он попытается создать экземпляр класса.Предполагается, что любые аргументы, не имеющие хинтинга типа, являются «параметрами маршрута» .
Поскольку у вашего маршрута нет параметров, $request
не может быть присвоено какое-либо значение без указания типа.При вводе подсказки аргумент $request
с классом Illuminate\Http\Request
Laravel автоматически разрешит эту привязку из своего контейнера и сделает ее доступной в вашем методе.
TLDR:
- ВашИсключение выдается в случае, если вы не напечатаете подсказку, потому что нет параметра маршрута для использования в качестве значения.
- При использовании печатания на клавиатуре Laravel автоматически разрешит привязку из контейнера или создаст экземпляр класса, если он не был связан.
См. Метод ввода в документации .