Почему такая ошибка при создании кастомного модуля?

Главные вкладки

Аватар пользователя nathan158 nathan158 19 июня 2020 в 20:42

Мне нужно создать кастомный модуль, который отображает погоду на странице (три значения: температура, давление, город) вот так:

18
1015
Лондон

Код weather.routing.yml:

weather.weather_page:                              
  path: '/weather'
  defaults:                                                      
    _controller: '\Drupal\weather\Controller\WeatherPage::getWeather'                          
  requirements:                                        
     _permission: 'access content'  

Но у меня отображается вот такое на странице:

17.52
1016
LondonThe website encountered an unexpected error. Please try again later.

RuntimeException: Controller "Drupal\weather\Controller\WeatherPage::getWeather()" requires that you provide a value for the "$city" argument. Either the argument is nullable and no null value has been provided, no default value has been provided or because there is a non optional argument after this one. in Symfony\Component\HttpKernel\Controller\ArgumentResolver->getArguments() (line 78 of vendor\symfony\http-kernel\Controller\ArgumentResolver.php).

Почему ошибка?

Комментарии

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 19 июня 2020 в 20:45

> Что я не так написал?

да практически всё

начните заново писать контроллер по руководству "как правильно написать контроллер в Drupal 8"

Аватар пользователя nathan158 nathan158 19 июня 2020 в 21:15

Я писал кастомный модуль по статье https://niklan.net/blog/66. Парень приводил пример на Hello World. Кстати на других туториалах тот же принцип создания кастомного модуля. Так что о "да практически всё" это преувеличено:). Можно конкретнее?

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 19 июня 2020 в 21:16

> Я писал кастомный модуль по статье https://niklan.net/blog/66.

своих то зачем обманывать? видно же, что в нормальный код вставлена какая-то фигня

метод контроллера должен возвращать массив
за классом никакого кода не должно быть

Аватар пользователя nathan158 nathan158 19 июня 2020 в 21:55

А как мне тогда переделать php код? Я php практически не знаю. Так как являюсь front-end разработчиком(javascript). Пробуюсь на сайтбилдера в Drupal компанию. На первых порах php не нужен в компании на позицию сайтбилдер, но дали задание сделать такой кастомный модуль. Вы можете помочь переделать php код? Очень нужна ваша помощь. Так как к сожалению нет знакомых програмистов которые подсказали каким образом нужно переделать код...

Аватар пользователя OldWarrior OldWarrior 20 июня 2020 в 0:10

Имхо, это очень похоже на какую-то разновидность троллинга Smile

---
PS. Если по сути:

nathan158 wrote:... Пробуюсь на сайтбилдера в Drupal компанию. На первых порах php не нужен в компании на позицию сайтбилдер, но дали задание сделать такой кастомный модуль...

то лучше подумайте, как корректно мотивировать отказ от такой задачи. Вы же js-кодер, всё таки.