Ошибка при создании нового модуля в 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
}
}
}

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

0

Решение

Проблема заключается в стоимости _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'
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]