我正在开发一个应该能够处理以下网址的自定义电子邮件表单:
http://www.example.com/email
默认为常规电子邮件地址。
http://www.example.com/email/Office/1
从Office模型获取电子邮件联系人详细信息,ID 1
http://www.example.com/email/Staff/96
从员工模型,ID 96获取电子邮件联系人详细信息
我以为我可以通过访问正常的$ Action / $ ID变量来做到这一点 - 但是路由文档完全混淆了:https://docs.silverstripe.org/en/3.3/developer_guides/controllers/routing/
class EmailPage_Controller extends Page_Controller
{
private static $allowed_actions = array(
'Form',
'Staff',
'Office'
);
public function Form() {
$Action = $this->request->getVar('Action');
$ID = $this->request->getVar('ID');
不起作用。
在Silverstripe中访问/传递URL变量到表单的最佳方法是什么?
答案 0 :(得分:5)
$ID = $this->request->param('ID');
这将从Url参数中获取您在路由或$ url_handlers中定义它们的ID。使用相同的方法获取action参数。