OctoberCMS Routing Plugin无法解析的依赖项解析

时间:2017-07-26 12:20:47

标签: php octobercms octobercms-backend octobercms-plugins

我目前正在使用OctoberCMS,我正在创建一个插件,其中包含一个自定义页面,其中包含一个显示网格的小部件Grid pattern manager

正如您在此图片中看到的那样,可以管理此网格,并可以使用“保存更改”按钮进行保存。这将向服务器发送POST请求,但是我在“监听”此POST请求时遇到问题。由于octoberCMS的文档不是很好,我试图像在Laravel中那样做。但即使这样也不会像它那样有效。

Unresolvable dependency resolving [Parameter #0 [ <required> $app ]] in class Illuminate\Support\ServiceProvider

ftsf /网格/ routes.php文件

<?php
Route::post('/backend/ftsf/grid', 'Ftsf\Grid\Widgets\GridManager@saveGrid');

ftsf /网格/部件/ GridManager.php

<?php namespace Ftsf\Grid\Widgets;

use App;
use Backend\Classes\WidgetBase;
use Cms\Classes\Content;
use Cms\Classes\Controller;
use Cms\Classes\Theme;
use Cms\Twig\Extension;
use Ftsf\Grid\Models\PatternOrder;
use Illuminate\Http\Request;
use System\Twig\Engine as TwigEngine;

class GridManager extends WidgetBase {
    protected $defaultAlias = 'ftsf_grid_manager';

    public function init() {
    }

    public function render() {
        $env = App::make('twig.environment');
        $env->addExtension(new Extension(new Controller(Theme::getActiveTheme())));

        return (new TwigEngine($env))->get($this->getViewPath('_gridmanager.htm'),
                                       ['patterns' => PatternOrder::orderBy('order')->with('pages')->get(),
                                        'contents' => Content::all()]);
    }

    public function loadAssets() {
        $this->addCss('css/gridmanager.css', 'Ftsf.Grid');
        $this->addJs('js/gridmanager.js', 'Ftsf.Grid');
    }

    public function saveGrid(Request $request){
        return dd($request);
    }
}

如果需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

您应该使用Octobers native AJAX handlers。在我看来,文档非常适合。

在这种情况下,处理程序应如下所示:

public function onSaveGrid(){
    return dd(post());
}

您可以像这样提出请求:

$.request('onSaveGrid', {
    success: function() {
        console.log('Finished!');
    }
})

当然,您也可以使用数据属性API或在DOM元素上调用处理程序。文档涵盖了所有这些案例。