2013-07-17 103 views
0

在CakePHP中,我試圖將一個簡單的參數傳遞給我的控制器類方法。但是,它看起來像參數必須在URL中可見。如果不能在URL中看到參數,我無法傳遞參數嗎?CakePHP如何將參數傳遞給控制器​​?

我的路由:

Router::connect(
    '/', 
    array(
     'controller' => 'Pages', 
     'action' => 'display' 
    ), 
    array(
     'pass' => array(
      'pageName' =>'home' 
     ) 
    ) 
); 

我的控制器方法:

public function display($p_sPageName=null) { 
+0

您忘了提及您的cakephp版本 – mark

+0

對不起,CakePHP版本2.3.7 – Hans

回答

3
Router::connect(
    '/', 
    array(
     'controller' => 'Pages', 
     'action' => 'display', 
     'home', 
    ), 
); 

這應該是一個烘焙應用默認路由和已經​​存在。這本書也很好section explaining the routing

follow the CakePHP coding standard,這個變量名$ p_sPageName是壞的。沒有人知道$ p_s是什麼意思。 This is a very good read關於編寫乾淨可讀的代碼。

/** 
* Displays a static page 
* 
* @param string $pageName 
* @return void 
*/ 
    public function display($pageName = null) { /*...*/ } 

doc塊應該通過「@param string $ pageName」告訴你它是一個字符串而不是變量名。沒有文檔,對於不知道命名約定的每個人來說這都變得不可讀。

+0

我曾經瞭解過這個符號(p_s)是參數(p)字符串,但我會查看該部分。 – Hans

+0

你的路由工作,謝謝。奇怪,爲什麼它不適合我。 – Hans

+0

doc塊應該通過「@param string $ pageName」告訴你它是一個字符串而不是變量名。沒有文檔,對於不知道命名約定的每個人來說這都變得不可讀。 – burzum

相關問題