空路线导致404错误 - SilverStripe 3.5

时间:2017-04-03 22:56:34

标签: php silverstripe

SilverStripe Docs中描述的肤浅一样,我试图为我的主页设置自定义控制器。

我将默认主页链接更改为' custom-home'并添加了这两条路线。 第二个,其中的路径工作,并指导我到我的控制器。第一个(空)只是将我发送到404错误页面。

无法弄清楚如何解决这个问题。有什么建议吗?

routes.yml

Director:
  rules:
    '': 'MyHome_Controller'
    'custom-home': 'MyHome_Controller

_config.php

RootURLController::set_default_homepage_link('custom-home');

MyHome_Controller.php

<?php
class MyHome_Controller extends Page_Controller {

  private static $allowed_actions = [];

  private static $url_handlers = [];

  public function init() {
    parent::init();
  }

  public function Link($action = null) {
    return Director::baseURL() . 'custom-home';
  }

  public function index() {
    $data = [
      'Title' => 'Hello World',
      'ClassName' => __CLASS__,
    ];

    return $this
      ->customise($data)
      ->renderWith([__CLASS__, 'Page']);
  }

}

1 个答案:

答案 0 :(得分:0)

我相信空路线(RootURLController)的工作方式是您告诉它应该解析为根URL的CMS中的URLSegment页面。所以我认为您需要做的是进入CMS并将CustomHomePage的URLSegment更改为“custom-home”。