【发布时间】:2014-05-03 04:41:10
【问题描述】:
我有一个控制器:
<?php
App::uses('AppController', 'Controller');
/**
* FundingYears Controller
*
*/
class FundingYearsController extends AppController {
/**
* Scaffold
*
* @var mixed
*/
public $scaffold;
}
当尝试通过 URL 传递参数(主键)时,因为它有一个“/”,它会炸掉它:
http://localhost/funding_years/view/12%2F13
有什么办法可以使用路由来逃避这种情况吗?
【问题讨论】:
-
看到这篇文章了吗? stackoverflow.com/questions/15529872/…
-
对 url 部分仅使用 a-z0-9-_ 等。对于需要通过 url 传递的不是 ascii 字符的所有参数,您应该使用查询字符串。特别是如果它们包含 URL 中的特殊字符,例如斜线。这些会自动正确编码和解码。见details。您还可以在此处将要用作传递参数的内容 sluggify - 这样的 slug 可以通过行为自动创建。
-
Router::connect('/funding_years/view/**', array('controller' => 'funding_years', 'action' => 'view'));不起作用,最终结果为:localhost/funding_years/view/12%2F1312%2F13。使用 CakePHP v2.4.5
-
你用的是什么版本的 Cake?