为什么url参数索引在';命名为';而不是';通过';用cakephp?
我的网址是: 我正在打印params对象,如下所示:为什么url参数索引在';命名为';而不是';通过';用cakephp?,url,cakephp,url-routing,cakephp-2.x,Url,Cakephp,Url Routing,Cakephp 2.x,我的网址是: 我正在打印params对象,如下所示: print_r($this->params); 这将打印以下数组: [params] => Array ( [plugin] => [controller] => customers [action] => search [named] => Array (
print_r($this->params);
这将打印以下数组:
[params] => Array
(
[plugin] =>
[controller] => customers
[action] => search
[named] => Array
(
[1A] => 79:32:97:F2
)
[pass] => Array
(
[0] => 1
[1] => 1
)
)
但它应该打印:
[params] => Array
(
[plugin] =>
[controller] => customers
[action] => search
[named] => Array
(
)
[pass] => Array
(
[0] => 1
[1] => 1A:79:32:97:F2
[2] => 1
)
)
但当我更改url时,如:
1A:79:32:97:F2作为url中的参数有什么问题?您需要禁用命名参数解析的贪婪性,默认情况下,所有看起来像命名参数的参数都会被解析为命名参数(即包含
:
分隔符的值)
在路由配置中,使用Router::connectNamed()
的第二个参数传递进一步的选项,类似于此,这将只启用默认的CakePHP分页参数:
Router::connectNamed(
false, // no custom named parameters
array(
'default' => true, // default pagination parameters
'greedy' => false // no greediness
)
);
另见
进行编码:
自CakePHP 2.0(2011年)以来,您不应该使用已删除的命名参数。看见对非字母数字数据使用查询字符串。对于简单的(有序的)字母数字数据,可以使用passed,但要确保这些数据被正确地插入。
Router::connectNamed(
false, // no custom named parameters
array(
'default' => true, // default pagination parameters
'greedy' => false // no greediness
)
);