Ошибка при создании нового модуля в Drupal 8

Я создал специальный модуль в Drupal 8, и мои журналы ошибок выдали мне следующее сообщение:

ReflectionException: класс Drupal \ onesignal_api \ src \ Controller \ OneSignalApiController не существует в ReflectionMethod -> __ construct () (строка 123 файла core / lib / Drupal / Core / Entity / EntityResolverManager.php)

вот мои файлы:

onesignal_api.routing.yml:

onesignal_api:
 path: '/onesignal_api'
 defaults:
   _controller:'Drupal\onesignal_api\src\Controller\OneSignalApiController::hook_onesignal_api_insert'
_title: 'One Signal API'
requirements:
  _permission: ‘access content’ 

OneSignalApiController.php:

<?php

namespace Drupal\onesignal_api\Controller; 

class OneSignalApiController {

/***
* Hook into OneSignal API to send push notifications once a new node is created
*/


   function hook_onesignal_api_insert(Drupal\Core\Node\NodeAPI $node) {
      if($node->isNew()) {
        // Code to execute
      }
   }
}

В чем проблема?


person MikeL5799    schedule 31.10.2018    source источник


Ответы (1)


Проблема в значении _controller:

'Drupal\onesignal_api\src\Controller\OneSignalApiController::hook_onesignal_api_insert'

Вам необходимо удалить \src.

Это значение должно относиться к пространству имен, namespace Drupal\onesignal_api\Controller;, а не к пути.


Кроме того, возможно, что-то просто потерялось при переводе при публикации вопроса здесь, но в вашем файле маршрутизации нет отступов, и у вас есть фигурные кавычки вокруг access content, которые необходимо заменить прямыми кавычками.

onesignal_api:
  path: '/onesignal_api'
  defaults:
    _controller: 'Drupal\onesignal_api\Controller\OneSignalApiController::hook_onesignal_api_insert'
    _title: 'One Signal API'
  requirements:
    _permission: 'access content'
person Don't Panic    schedule 31.10.2018
comment
Спасибо, вот и все. - person MikeL5799; 01.11.2018