2013-07-17 74 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

相关问题