在CakePHP中,我试图将一个简单的参数传递给我的控制器类方法。但是,看起来参数必须在URL中可见。我不能在URL中不可见的情况下传递参数吗?
我的路线:
Router::connect(
'/',
array(
'controller' => 'Pages',
'action' => 'display'
),
array(
'pass' => array(
'pageName' =>'home'
)
)
);
我的控制器方法:
public function display($p_sPageName=null) {
Router::connect(
'/',
array(
'controller' => 'Pages',
'action' => 'display',
'home',
),
);
这应该是烘焙应用程序中的默认路由,并且已经存在。这本书还有一个很好的部分解释了路线。
同样遵循CakePHP编码标准,这个变量名$p_sPageName不好。没有人知道$p_s是什么意思。这是一本非常好的关于编写干净可读代码的读物。
/**
* Displays a static page
*
* @param string $pageName
* @return void
*/
public function display($pageName = null) { /*...*/ }
doc块应该通过"@param string$pageName"告诉您,它是一个字符串,而不是变量名。如果没有文档,对于不了解命名约定的每个人来说,这将变得不可读。