首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pimcore捆绑控制器服务用户

Pimcore捆绑控制器服务用户
EN

Stack Overflow用户
提问于 2022-02-17 09:00:46
回答 1查看 125关注 0票数 0

你好,Pimcore开发人员,我正在从事一个运行在Pimcore X上的项目!但我又遇到了一些“麻烦”。当我试图到达控制器时,我会得到错误消息:"App\Foo\Bar\Controller\SomeController" has no container set, did you forget to define it as a service subscriber?

让我展示一些代码片段:

src\Foo\Bar\Controller\SomeController

代码语言:javascript
复制
namespace App\Foo\Bar\Controller;

/**
 * @Route("/admin/Bar")
 */
class SomeController extends AdminController
{
    /**
     * @Route("/foo", name="foo-you-too")
     *
     * @return Response
     */
    public function someAction(): Response
    {
        die('howdy!');
    }
}

src\Foo\Bar\DependencyInjection\BarBundleExtension

代码语言:javascript
复制
namespace App\Foo\Bar\DependencyInjection;

class BarBundleExtension extends ConfigurableExtension implements PrependExtensionInterface
{
    /**
     * {@inheritdoc}
     */
    public function loadInternal(array $config, ContainerBuilder $container)
    {
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('services.yml');
    }
}

src/Foo/Bar/Resources/config/services.yml

代码语言:javascript
复制
services:
    _defaults:
        autowire: true
        autoconfigure: true
        public: false

    #Foo\Bar\Controller\:
    #App\Bar\Controller\:
    App\Foo\Bar\Controller\:
        resource: '../../Controller'
        public: true
        autowire: true
        autoconfigure: true
        tags: ['controller.service_arguments']

src/Foo/Bar/Resources/config/pimcore/routing.yml

代码语言:javascript
复制
app:
  resource: "@Bar/Controller/"
  type:     annotation

src/Foo/Bar/Resources/public/js/startup.js

代码语言:javascript
复制
pimcore.registerNS("pimcore.plugin.menusample");

pimcore.plugin.menusample = Class.create(pimcore.plugin.admin, {
    getClassName: function () {
        return "pimcore.plugin.menusample";
    },

    initialize: function () {
        pimcore.plugin.broker.registerPlugin(this);

        this.navEl = Ext.get('pimcore_menu_search').insertSibling('<li id="pimcore_menu_mds" class="pimcore_menu_item pimcore_menu_needs_children">Howdy there!</li>', 'after');
        this.menu = new Ext.menu.Menu({
            items: [{
                text: "Some text",
                iconCls: "pimcore_icon_apply",
                handler: function (button) {
                    new Ext.Window({
                        title: t('-'),
                        width: '50%',
                        height: '80%',
                        layout: 'fit',
                        items: [
                            {
                                xtype: "component",
                                autoEl: {
                                    tag: "iframe",
                                    src: "/admin/Bar/foo"
                                },
                                border: false
                            }
                        ]
                    }).show();
                }.bind(this)
            }],
            cls: "pimcore_navigation_flyout"
        });
        pimcore.layout.toolbar.prototype.mdsMenu = this.menu;
    },

    pimcoreReady: function (params, broker) {
        var toolbar = pimcore.globalmanager.get("layout_toolbar");
        this.navEl.on("mousedown", toolbar.showSubMenu.bind(toolbar.mdsMenu));
        pimcore.plugin.broker.fireEvent("mdsMenuReady", toolbar.mdsMenu);
    }
});

const menusamplePlugin = new pimcore.plugin.menusample();

我怀疑我的services.yml有什么问题,我已经找过类似的StackOverflow问题了,但没有结果。

EN

回答 1

Stack Overflow用户

发布于 2022-02-17 10:20:40

我找到了解决方案-- DependencyInjection类名的名称是错误的--应该是BarExtension而不是BarBundleExtension,就像名称空间中的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71155078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档