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

时间:2013-07-17 09:11:20

标签: php cakephp

在CakePHP中我试图将一个简单的参数传递给我的控制器类方法。但是看起来该参数必须在URL中可见。如果没有在URL中显示参数,我是否无法传递参数?

我的路线:

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

我的控制器方法:

public function display($p_sPageName=null) {

1 个答案:

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