自定义主页奏鸣曲页面
Posted
技术标签:
【中文标题】自定义主页奏鸣曲页面【英文标题】:Custom Home page sonata page 【发布时间】:2015-11-09 20:44:49 【问题描述】:我为主页创建自定义控制器。
控制器:
class FrontPageController extends Controller
public function homeAction()
return $this->render('FrontPageBundle:Page:home.html.twig');
routing.yml
front_page_home:
path: /
defaults: _controller: FrontPageBundle:FrontPage:home
但是我的控制器的 url 重定向到控制器 sonata.page.page_service_manager:execute
路线:“page_slug”
【问题讨论】:
【参考方案1】:我找到了解决方案,但我不知道这是否是好的做法。
我创建了我的客户RoutePageGenerator
类并编辑将更改到主页的路线的类。像这样:
// Iterate over declared routes from the routing mechanism
foreach ($this->router->getRouteCollection()->all() as $name => $route)
if($route->getPath() === "/")
$name = trim($name);
$root = $this->pageManager->create(array(
'routeName' => $name,
'name' => $name,
'url' => $route->getPath(),
'site' => $site,
'requestMethod' => isset($requirements['_method']) ? $requirements['_method'] : 'GET|POST|HEAD|DELETE|PUT',
'slug' => '/',
));
我删除这部分代码:
$root = $this->pageManager->getPageByUrl($site, '/');
// no root url for the given website, create one
if (!$root)
$root = $this->pageManager->create(array(
'routeName' => PageInterface::PAGE_ROUTE_CMS_NAME,
'name' => 'Homepage',
'url' => '/',
'site' => $site,
'requestMethod' => isset($requirements['_method']) ? $requirements['_method'] : 'GET|POST|HEAD|DELETE|PUT',
'slug' => '/',
));
$this->pageManager->save($root);
我创建了我的客户 UpdateCoreRoutesCommand 并调用了我的 RoutePageGenerator:
只需执行此命令php app/console sonata:page:create-snapshots --site=1
并且有效。
【讨论】:
以上是关于自定义主页奏鸣曲页面的主要内容,如果未能解决你的问题,请参考以下文章