OctoberCMS Routing Plugin Unresolvable 依赖解析
OctoberCMS Routing Plugin Unresolvable dependency resolving
我目前正在使用 OctoberCMS 并正在创建一个插件,该插件具有一个带有显示网格的小部件的自定义页面
正如您在此图片中所见,可以使用 "Save changes" 按钮管理和保存此网格。这将向服务器发送一个 POST 请求,但我对这个 POST 请求的 "listening" 有问题。由于 octoberCMS 的文档不是很好,我正在尝试按照 Laravel 中的方式进行操作。但即使那样也不能正常工作。
Unresolvable dependency resolving [Parameter #0 [ <required> $app ]] in class Illuminate\Support\ServiceProvider
ftsf/grid/routes.php
<?php
Route::post('/backend/ftsf/grid', 'Ftsf\Grid\Widgets\GridManager@saveGrid');
ftsf/grid/widgets/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);
}
}
如果需要更多信息,请告诉我。
您应该使用十月本机 AJAX handlers。在我看来,文档对此非常有用。
在那种情况下,处理程序应该如下所示:
public function onSaveGrid(){
return dd(post());
}
您可以这样提出请求:
$.request('onSaveGrid', {
success: function() {
console.log('Finished!');
}
})
当然,您也可以使用数据属性 API 或在 DOM 元素上调用处理程序。文档涵盖了所有这些情况。
我目前正在使用 OctoberCMS 并正在创建一个插件,该插件具有一个带有显示网格的小部件的自定义页面
正如您在此图片中所见,可以使用 "Save changes" 按钮管理和保存此网格。这将向服务器发送一个 POST 请求,但我对这个 POST 请求的 "listening" 有问题。由于 octoberCMS 的文档不是很好,我正在尝试按照 Laravel 中的方式进行操作。但即使那样也不能正常工作。
Unresolvable dependency resolving [Parameter #0 [ <required> $app ]] in class Illuminate\Support\ServiceProvider
ftsf/grid/routes.php
<?php
Route::post('/backend/ftsf/grid', 'Ftsf\Grid\Widgets\GridManager@saveGrid');
ftsf/grid/widgets/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);
}
}
如果需要更多信息,请告诉我。
您应该使用十月本机 AJAX handlers。在我看来,文档对此非常有用。
在那种情况下,处理程序应该如下所示:
public function onSaveGrid(){
return dd(post());
}
您可以这样提出请求:
$.request('onSaveGrid', {
success: function() {
console.log('Finished!');
}
})
当然,您也可以使用数据属性 API 或在 DOM 元素上调用处理程序。文档涵盖了所有这些情况。