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');
存储库有几种方法,如search
、get
、create
、delete
等。
使用这些方法,您可以在插件的 vue.js 组件中读取数据并将其带到您的模块中
阅读更多关于自己的模块here
【讨论】:
以上是关于Shopware 6:在自己的自定义管理模块中获取 PHP 数据的主要内容,如果未能解决你的问题,请参考以下文章