在Drupal 8

时间:2018-10-31 20:05:14

标签: php drupal hook drupal-8 drupal-hooks

我在Drupal 8中创建了一个自定义模块,错误日志给了我以下消息:

  

ReflectionException:ReflectionMethod-> __ construct()(core / lib / Drupal / Core / Entity / EntityResolverManager.php的第123行)中不存在类Drupal \ onesignal_api \ src \ Controller \ OneSignalApiController

这是我的文件:

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 :(得分: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'