Routing 如何扩展SilverStripe“;系统/内部“;路由?

Routing 如何扩展SilverStripe“;系统/内部“;路由?,routing,silverstripe,Routing,Silverstripe,我有一些树页面,如: /business /loans /personal /bad-credit etc. 如何扩展内部/框架路由(不创建子页面)以获得以下链接: /business/segment /loans/some-segment /personal/some-another-segment /bad-credit/awesome-segment etc. 大概是这样的: --- Name: customroutes After: framework/routes#corerout

我有一些树页面,如:

/business
/loans
/personal
/bad-credit
etc.
如何扩展内部/框架路由(不创建子页面)以获得以下链接:

/business/segment
/loans/some-segment
/personal/some-another-segment
/bad-credit/awesome-segment
etc.
大概是这样的:

---
Name: customroutes
After: framework/routes#coreroutes
---
Director:
  rules:
    'business/???': 'Custom_Controller'
    'loans/???': 'Custom_Controller'

您不需要自定义路由-只需向页面控制器添加允许的\u操作,如下所述:

该示例显示了呈现rss提要,但这可以适用于呈现普通页面

下面是一个简化的示例:

<?php

class MyPage extends Page {

}


class MyPage_Controller extends Page_Controller {

    private static $allowed_actions = array(
        "segment",
    );


    // URL: domain.com/page-url/segment
    public function segment() {

        // By default this will look for the template MyPage_segment.ss
        // If that's not found, it will fall back to MyPage.ss
        // Then Page.ss and so on...
        return $this->render();
    }

}

您不需要自定义路由-只需向页面控制器添加允许的\u操作,如下所述:

该示例显示了呈现rss提要,但这可以适用于呈现普通页面

下面是一个简化的示例:

<?php

class MyPage extends Page {

}


class MyPage_Controller extends Page_Controller {

    private static $allowed_actions = array(
        "segment",
    );


    // URL: domain.com/page-url/segment
    public function segment() {

        // By default this will look for the template MyPage_segment.ss
        // If that's not found, it will fall back to MyPage.ss
        // Then Page.ss and so on...
        return $this->render();
    }

}

谢谢!但是动态允许的操作呢?这个页面应该有帮助:谢谢!但是动态允许的操作呢?此页面应该有助于: