在 CakePHP 中,在 url 中放置一个查询字符串不会导致它像通常直接调用 Controller 时那样被自动解析和拆分。
例如:
$this->testAction('/testing/post?company=utCompany', array('return' => 'vars')) ;
将导致:
[url] => /testing/post?company=utCompany
通过网络浏览器直接调用 url 会导致:
[url] => Array
(
[url] => testing/post
[company] => utCompany
)
在不编辑 CakePHP 源代码的情况下,是否有某种方法可以在运行单元测试时拆分查询字符串?
最佳答案
我有一个 hack(即可能不适用于 future 的 CakePHP 版本)或未记录的功能。
如果第二个 testAction 参数包含一个名为“url”的命名数组,那么这些值将被放置在 Controller 中的 $this->params 对象中。这为我们提供了与直接调用 Controller 时相同的最终结果。
$data = array ('company' => 'utCompany') ;
$result = $this->testAction('/testing/post', array
(
'return' => 'vars',
'method' => 'get',
'url' => $data)
) ;
对于我需要做的事情,我对这种方法很满意。我会尽快向社区公开这个问题,以便将来可以提供更好的答案。
关于php - 如何在 CakePHP 1.2 中将查询字符串传递给 testAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/200925/