【问题标题】:How to make plugin components function available as Rest API in OctoberCMS?如何在 OctoberCMS 中使插件组件功能作为 Rest API 可用?
【发布时间】:2018-03-31 23:27:36
【问题描述】:

在我的插件的一个组件中,我有一个函数可以读取用户输入(使用Input::get()),创建一个Model 并将其保存到数据库中。数据通过 html 表单提交给该函数。现在我也想允许用户通过Rest API 添加新数据。因此,我在插件的根目录中创建了一个名为 routes.php 的文件,并定义了发布数据的路径。由于重用插件组件中已经可用的代码是合乎逻辑的,因此我尝试将路由映射到已经可用的组件函数:

Route::post('/items', 'Acme\Plugin\Components\ItemsList@addItem');

但这不起作用,我收到以下错误:

组件 Acme\Plugin\Components\ItemsList 不包含方法 getAfterFilters

这就是在我的 Rest API 中重用代码的方式吗?为什么会出现此错误?

【问题讨论】:

  • Acme\Plugin\Components\ItemsList 实现了一些接口,你必须在其中有一个 getAfterFilters 方法。或者不从该接口实现。
  • @Asheliahut 它扩展了ComponentBase,就像OctoberCMS 中的所有组件一样。

标签: php laravel rest octobercms octobercms-plugins


【解决方案1】:

制作一个不带扩展的控制器,并在构造函数中为组件使用依赖注入

扩展自

Illuminate\Routing\Controller

和依赖注入

你可以使用"Route::resource"函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-08
    • 2020-04-24
    • 1970-01-01
    • 2014-11-29
    • 2016-07-20
    • 2016-10-17
    • 1970-01-01
    • 2016-08-25
    相关资源
    最近更新 更多