具体5:如何在类似Laravel的页面上以编程方式呈现RESTful内容

具体5:如何在类似Laravel的页面上以编程方式呈现RESTful内容,laravel,rest,render,concrete5,Laravel,Rest,Render,Concrete5,我试图做的是分解c5单页控制器和视图,使其更接近RESTful API 以分类广告包为例。它在packages/Classifieds/controllers/single_page/Dashboard/Classifieds.php中有一个名为Classifieds的仪表板控制器,在packages/Classifieds/single_page/Dashboard/Classifieds.php中有一个对应的单页视图。此页面与任何其他仪表板页面一样以模板和主题显示 控制器有许多操作:查看、添

我试图做的是分解c5单页控制器和视图,使其更接近RESTful API

以分类广告包为例。它在packages/Classifieds/controllers/single_page/Dashboard/Classifieds.php中有一个名为Classifieds的仪表板控制器,在packages/Classifieds/single_page/Dashboard/Classifieds.php中有一个对应的单页视图。此页面与任何其他仪表板页面一样以模板和主题显示

控制器有许多操作:查看、添加、编辑、保存、删除等。所有代码都在一公里长的文件中。与视图相同,所有动作视图都位于一公里长的文件中。一切正常-没问题。但查找和编辑是一场噩梦

我想要的是以下内容。我希望能够有一个单一的仪表板模板页面(例如,像Laravel的布局app.blade.php)和一些独立的视图文件,其内容取决于控制器的操作,例如index.php、create.php、edit.php、show.php等,这些文件将插入主模板页面。这样,每个文件都会很好,很短。这能做到吗

我试着遵循这个文件:

但它不起作用,因为所有c5主题都需要样式表,而我的内容无法呈现。我试过这个:

线路员:

use Concrete\Core\Routing\RouteListInterface;
use Concrete\Core\Routing\Router;

class RouteList implements RouteListInterface
{
    public function loadRoutes($router)
    {
        $api = $router->buildGroup()
            ->setPrefix('/dashboard')
            ->setNamespace('MyPackage\Controllers')
            ->routes(function($groupRouter) {
                $groupRouter->get('/my_package', 'TestController::index');
            });
    }
} 
控制器:

use Concrete\Core\Http\ResponseFactoryInterface;
use Concrete\Core\Controller\Controller;
use Concrete\Core\View\View;

class TestController extends Controller
{
    protected $responseFactory;

    public function __construct(ResponseFactoryInterface $responseFactory)
    {
        $this->responseFactory = $responseFactory;
    }

    public function index()
    {
        $view = new View('test');
        $view->setPackageHandle('my_package');
        $view->setController($this);
        $view->setViewTheme('elemental');
        $view->setViewTemplate('full');

        $this->set('content', 'This is a test');

        return $this->responseFactory->view($view);
    }
}
视图:


<?php defined('C5_EXECUTE') or die("Access Denied.");

    echo $content;

?>