Laravel 如何在OctoberCMS中呈现带有默认主题和控制器变量的cms页面?
我想知道如何通过在控制器中执行函数的路由来呈现视图,或者在OctoberCMS中显示带有默认主题的页面 如果我有以下路线:Laravel 如何在OctoberCMS中呈现带有默认主题和控制器变量的cms页面?,laravel,controller,routes,views,octobercms,Laravel,Controller,Routes,Views,Octobercms,我想知道如何通过在控制器中执行函数的路由来呈现视图,或者在OctoberCMS中显示带有默认主题的页面 如果我有以下路线: Route::get('bransje', [ 'uses' => 'Ekstremedia\Cityportal\CPController@bransje' ]); 在我的控制器CPC中,我尝试了几件事,就像我以前对拉威尔所做的那样: public function bransje() { $stuff = Stuff::with('info');
Route::get('bransje', [
'uses' => 'Ekstremedia\Cityportal\CPController@bransje'
]);
在我的控制器CPC中,我尝试了几件事,就像我以前对拉威尔所做的那样:
public function bransje() {
$stuff = Stuff::with('info');
return View::make('cms::bransje')->with('stuff',$stuff);
}
但我似乎无法让它发挥作用,我尝试过在网上搜索,但很难找到答案。我找到了一个解决方法,那就是制作一个插件组件,然后我可以包含该组件并执行以下操作:
public function onRun()
{
$this->eventen = $this->page['stuff'] = $this->stuff();
}
protected function stuff()
{
return ...
}
有没有什么方法可以让我不用Cms来制作页面,而这些页面都包装在我的默认主题中?我试过了
返回视图::make('my-theme-name::page')
还有很多变种,但运气不好
我知道我也能做到:
==
public function onRun()
{
}
在我的cms页面的开头,但我不确定如何通过那里从我的插件控制器调用函数。您可以通过在插件中使用绕过前端路由
完整的示例。如果此答案仍然有用(适用于10月v434) 我有几乎相同的场景 我想要实现的是一种类似facebook页面和个人资料的路由
facebook.com/myprofile
与facebook.com/mypage
首先,我在CMS中为每个场景创建一个页面(比如catchpage.htm
)
然后a在我的插件routes.php的按钮上创建了一个catchall路由,它也不会干扰octobercms的内部工作
if (!Request::is('combine/*') && !Request::is('backend/*') && !Request::is('backend')) {
// Last fail over for looking up slug from the database
Route::get('{slug}/{slug2?}', function ($slug, $slug2 = null) {
//Pretend this are our routes and we can check them against the database
$routes = ["bola", "sade", "bisi", "ade", "tayo"];
if(in_array($slug, $routes)) {
$cmsController = new Cms\Classes\Controller;
return $cmsController->render("/catchpage", ['slug' => $slug]);
}
// Some fallback to 404
return Response::make(View::make('cms::404'), 404);
});
}
如果Request::is
检查是十月在引擎盖下使用的所有资源的列表,请不要移除联合收割机,因为它是联合收割机路径。删除它,样式和脚本将不会渲染。此外,后端是指向后端的url,请确保提供后端和后端/*
最后不要忘记返回Response::make(View::make('cms::404'),404)代码>如果资源无用
不过,您可以将所有这些都放在控制器中
如果有人有更好的解决方法,请告诉我们。虽然指向外部资源的链接可能有用,但也请在您的答案中添加要点。其他网站的链接可能会随着时间的推移而中断。谢谢你的回答,这是一个很好的视频,但它没有回答我的问题。他回来了,只是一个“你好世界”。我想要的是,假设我用我的默认主题在cms中创建一个页面,“页面”。然后,我想创建一个执行函数的路由,它将以与“mysite.com/page”相同的方式呈现该页面,但添加了将对象发送到视图中的选项。好的,那么您需要自定义路由返回的CMS页面(处理过的Twig.htm文件?)?问题是你为什么会这么做——CMS免费提供给你的功能是一样的。也许您还需要其他东西-在发送或类似之前修改响应的全局事件挂钩?(新Cms\Classes\Controller)->render()
正是我所需要的!在自定义路由和控制器中呈现所选页面。