2016-06-12 26 views
4

我工作的自定義電子郵件的形式應該能夠處理以下網址上:如何通過URL變量一種形式,Silverstripe

http://www.example.com/email 

默認爲普通電子郵件地址。

http://www.example.com/email/Office/1 

獲取從Office模式,ID 1

http://www.example.com/email/Staff/96 

獲取來自員工模型電子郵件聯繫方式,身份證96

電子郵件聯繫方式,我想我能做到這一點通過訪問正常$行動/ $ 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'); 

不起作用。

訪問/傳遞URL變量到Silverstripe表單的最佳方式是什麼?

回答

5
$ID = $this->request->param('ID'); 

這會從您的路由或$ url_handlers中定義它們的Url參數中獲得id。使用同樣的方法獲取操作參數。

+0

這正是我需要做的。我通常使用param(),但必須從其他代碼複製/粘貼getVar()。 – BaronGrivet