2

我是 Silverstripe 框架/CMS 的新手。我将./mysite/code/Page.php其视为控制器和./themes/simple/...模板目录。我登录到管理面板并添加了新test页面。菜单出现在带有 URLhttp://example.com/test和内容的网站上。

所以我想知道的是,如何访问新的控制器让我们说Download.ss。我想访问 URL而不在管理面板中http://example.com/download/123/添加新页面。download谢谢你。

4

1 回答 1

5

首先,任何带有.ss扩展名的文件都是模板文件而不是控制器。

创建一个新类,mysite/code/Download.php其中 extends Controller

class Download extends Controller {
    public function index() {
        // Automatically handles URLs like http://example.com/Download
    }

    public function exampleaction() {
        // Automatically handles URLs like http://example.com/Download/exampleaction
    }
}

之后,您需要向目录中添加一个新routes.yml文件,mysite/_config以指定index新控制器上的函数应处理对http://example.com/download/123.

---
Name: downloadrules
---
Director:
  rules:
    'download/$ID': Download

现在,您的示例 URL 的“123”部分将可以$this->request->param('ID')index函数中访问。

现在你可以这样做:

class Download extends Controller {
    public function index() {
        $fileID = $this->request->param('ID');
        // Do your thing.
    }
}

这些东西的文档位于http://doc.silverstripe.org/framework/en/reference/director

于 2012-11-13T07:02:31.670 回答