在CakePHP中我试图将一个简单的参数传递给我的控制器类方法。但是看起来该参数必须在URL中可见。如果没有在URL中显示参数,我是否无法传递参数?
我的路线:
Router::connect(
'/',
array(
'controller' => 'Pages',
'action' => 'display'
),
array(
'pass' => array(
'pageName' =>'home'
)
)
);
我的控制器方法:
public function display($p_sPageName=null) {
答案 0 :(得分: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”告诉你它是一个字符串而不是变量名。没有文档,对于不了解命名约定的每个人来说,这都变得不可读。