0

如果我在模块类别中有一个服务管理器,例如,我可以从模块应用程序中的类别中读取吗?

我已经在Application的Module.php中这样做了,'list-category'位于模块类别的module.config.php文件中:

public function onDispatch(MvcEvent $e)
{
    // get service manager from the application object
    $sm = $e->getApplication()->getServiceManager();
    // get categories service
    $categories = $sm->get('list-category');
    // get view model
    $vm = $e->getViewModel();
    // store category list in a variable
    $vm->setVariable('categories', $categories);
}

我已经在应用程序的模块类别中阅读了服务管理器。

4

1 回答 1

1

是的,您可以使用在 module 中添加到服务管理器中的服务Amodule B。服务只是在不同的模块中添加到服务管理器中,但可以跨模块使用,因为配置文件由模块管理器合并在一起,然后交给服务管理器。这就是为什么为服务名称命名以避免跨模块的命名冲突是一个好主意。只需像往常一样获取它,它应该可以工作。

关于您提供的代码,那么问题是什么?它不工作吗?你有任何错误吗?的内容是$categories什么?您是否将您的功能附加到事件管理器?如果没有,那么本文将向您展示如何做到这一点。另外,请仔细考虑是否要对Category模块内的每个页面请求执行此类操作。我不知道你的推理,但是在每次页面加载时都做这样的事情,你应该有充分的理由这样做。

于 2013-04-21T14:09:24.623 回答