gpt4 book ai didi

php - Silverstripe URL 是如何工作的?

转载 作者:行者123 更新时间:2023-12-02 05:24:18 26 4
gpt4 key购买 nike

我是 Silverstripe Framework/CMS 的新手。我看到 ./mysite/code/Page.php 作为 Controller ,./themes/simple/... 作为模板目录。我登录到管理面板并添加了新的 test 页面。菜单出现在网址为 http://example.com/test 的网站上,并显示内容。

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

最佳答案

首先,任何扩展名为.ss 的文件都是模板文件,而不是 Controller 。

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 函数在你的新 Controller 上应该处理对 http://example.com/download/123 的调用。

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

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

现在您可以:

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

这方面的文档位于 http://doc.silverstripe.org/framework/en/reference/director

关于php - Silverstripe URL 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13356272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com