Cakephp中参数传递的不同方法
我正在使用cakephp v1.26。Cakephp中参数传递的不同方法,cakephp,cakephp-1.2,Cakephp,Cakephp 1.2,我正在使用cakephp v1.26。 我在控制器中得到了这样一个函数: class testingsController extends AppController{ function testing($id=null){ $recieved = $id;} } 我不确定是否有更好的方法将参数传递给动作测试。 但是我遇到过一些网站,得到了这两种方法。 以下参数传递方法有什么不同吗? 1. url/testings/testing/1 2. url/testings/testing:1
我在控制器中得到了这样一个函数:
class testingsController extends AppController{
function testing($id=null){
$recieved = $id;}
}
我不确定是否有更好的方法将参数传递给动作测试。但是我遇到过一些网站,得到了这两种方法。
以下参数传递方法有什么不同吗?
1. url/testings/testing/1
2. url/testings/testing:1
url/testings/testing/1
对于标准路由,这将调用testingscoontroller::testing(1)
这是标准的参数传递,超出/:controller/:action/
的任何参数都会“按原样”传递给被调用的操作
/controllers/action/param1/param2
对应于ControllersController::action($param1,$param2)
url/测试/测试:1
对于标准路由,这将调用testingscoontroller::index()
和将
$this->params['named']['testing']
设置为1
。这称为命名参数
命名参数可以按任何顺序传递。这两个URL是等效的:url/testings/testing:1/foo:2
url/testings/foo:2/testing:1
它们不会被传递给函数,就像在函数测试($id=null)中一样<代码>$id将为
null
。它们仅在$this->params['named']
数组中可用。您的第一个示例将它作为数字参数传递
$this->params[0]; // 1
第二个将传递一个命名对,就像一个数组
$this->params['testing']; // 1
您可以将其中一个用于不同的用途。您会注意到,分页器在对列和页进行排序时使用key:val
成对参数
书中还有一点进一步的信息,是的,比我的答案要详细得多,我已经忘记了(命名)!我真丢脸;)