在Cakephp中传递参数的不同方法

use*_*712 0 cakephp cakephp-1.2

我正在使用cakephp v1.26.
我在这样的控制器中得到了一个函数:

class testingsController extends AppController{

function testing($id=null){
$recieved = $id;}

}
Run Code Online (Sandbox Code Playgroud)

我不确定是否有更好的方法将参数传递给Action测试.
但我遇到过一些网站并得到了这两种方法.
以下参数传递方法有什么区别吗?

1. url/testings/testing/1
2. url/testings/testing:1
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 7

url/testings/testing/1

使用标准路线,这将打电话TestingsController::testing(1).

这是标准参数传递,超出的任何参数/:controller/:action/都"按原样"传递给被调用的操作.

/controllers/action/param1/param2 对应于
ControllersController::action($param1, $param2)

url/testings/testing:1

使用标准路由,这将调用TestingsController::index()
设置$this->params['named']['testing']1.这称为命名参数.

命名参数可以按任何顺序传递.这两个URL是等效的:
url/testings/testing:1/foo:2
url/testings/foo:2/testing:1

它们不会被传递给函数,如function testing($id = null).$id会的null.它们仅在$this->params['named']阵列中可用.