Ошибка при создании нового модуля в Drupal 8 - PullRequest
0 голосов
/ 31 октября 2018

Я создал пользовательский модуль в 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
      }
   }
}

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

1 Ответ

0 голосов
/ 31 октября 2018

Проблема в значении _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'
...