我目前正在使用OctoberCMS,我正在创建一个插件,其中包含一个自定义页面,其中包含一个显示网格的小部件
正如您在此图片中看到的那样,可以管理此网格,并可以使用“保存更改”按钮进行保存。这将向服务器发送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);
}
}
如果需要更多信息,请告诉我。
答案 0 :(得分:1)
您应该使用Octobers native AJAX handlers。在我看来,文档非常适合。
在这种情况下,处理程序应如下所示:
public function onSaveGrid(){
return dd(post());
}
您可以像这样提出请求:
$.request('onSaveGrid', {
success: function() {
console.log('Finished!');
}
})
当然,您也可以使用数据属性API或在DOM元素上调用处理程序。文档涵盖了所有这些案例。