我是Silverstripe Framework / CMS的新手。我将./mysite/code/Page.php
视为控制器,将./themes/simple/...
视为模板目录。我登录了管理面板并添加了新的test
页面。网站上显示的网址为http://example.com/test
,并显示内容。
所以我想知道的是,如何访问新控制器,请说Download.ss
。我想访问网址http://example.com/download/123/
而不在管理面板中添加新页面download
。谢谢。
答案 0 :(得分:5)
首先,任何扩展名为.ss
的文件都是模板文件而不是控制器。
在mysite/code/Download.php
中创建一个扩展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
现在,$this->request->param('ID')
功能中index
可以访问示例网址的“123”部分。
现在你可以做到:
class Download extends Controller {
public function index() {
$fileID = $this->request->param('ID');
// Do your thing.
}
}
此内容的文档位于http://doc.silverstripe.org/framework/en/reference/director