Shopware 6:在自己的自定义管理模块中获取 PHP 数据

Posted

技术标签:

【中文标题】Shopware 6:在自己的自定义管理模块中获取 PHP 数据【英文标题】:Shopware 6: Get PHP data in own custom admin module 【发布时间】:2020-06-03 23:06:45 【问题描述】:

我已经在 Shopware 6 中构建了自己的插件。我已经有了一个带有自定义路由的自定义模块。现在我想将自定义数据库表中的数据添加到自定义路由html.twig

我的路线:http://localhost:8888/admin#/ankauf/module/overview

我的数据库表:product_reservation

我已经构建了自己的控制器,但我无法让这个控制器监听我的路由。也许是因为我的路线是从模块构建的?我的模块中的路径是:ankauf.module.overview

控制器是正确的方式吗?如果是的话,它怎么能听我的路径而不用他自己的路径覆盖它?

有没有更好的方法将 php 代码推送到我的自定义后端路径?

【问题讨论】:

这两个问题似乎无关。您可能应该将第二个问题移至一个单独的问题。至于丢失路线的第一个问题,我无法发现问题。有没有试过调试命令bin/console debug:router查看路由是否注册?您的路线是否列在那里? 嗯,谢谢。但是是的,我的路线列在那里:admin.ankauf.module.overview GET ANY ANY /admin/ankauf/module/overview ...我将把我的问题分成两部分。 【参考方案1】:

如果您已经创建了自己的具有定义等的实体(如here 或here 所述),则可以轻松地将您的数据发送到管理模块。 Shopware 将自动为您的实体上的 CRUD 操作注册路线。因此,实体可通过管理 API 自动使用。在管理方面,还有帮助服务来读取您的 API。在您的 vue.js 组件中,您需要注入

inject: [
    'repositoryFactory'
],

使用这个工厂,您可以创建一个请求您的自定义实体 API 路由的存储库。


    ...
    created() 
        this.repository = this.repositoryFactory.create('product_reservation');
    

存储库有几种方法,如searchgetcreatedelete 等。 使用这些方法,您可以在插件的 vue.js 组件中读取数据并将其带到您的模块中 阅读更多关于自己的模块here

【讨论】:

以上是关于Shopware 6:在自己的自定义管理模块中获取 PHP 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义订单状态添加到 shopware 6

如何在 Shopware 6 中为订单添加自定义字段?

shopware 6插件的单元测试未找到自定义服务

如何在 Shopware 6 中获取公用文件夹绝对路径?

无法通过 Shopware 6 中的 XmlHttpRequest 请求 PageController

Shopware 6 后端控制器路径