CakePHP如何将参数传递给控制器


CakePHP how to pass a parameter to controller?

在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"告诉您,它是一个字符串,而不是变量名。如果没有文档,对于不了解命名约定的每个人来说,这将变得不可读。