我尝试了很多方法来解决这个问题,但没有一个有效。
假设我有一堂课:
class MyTestClass{
function testPrint($a = '', $b = '', $c = '')
{
echo '1: ' . $a . ', 2: ' . $b . ', 3: ' . $c;
}
}
如果我使用这个 url 访问这个函数,
http://localhost/ci/index.php/myTestClass/testPrint/a/b/c
你会看到1: a, 2: b, 3: c
输出,这很好。
但是如果我将 $b 分配给一个空字符串,则 url 将更改为http://localhost/ci/index.php/myTestClass/testPrint/a//c
输出将更改为1: a, 2: c, 3:
似乎 CI 忽略了缺少的参数。
问题是如何防止CI忽略uri中间的缺失参数?
我现在的预期输出是 url1: a, 2: , 3: c
顺便说一句,我试图用来$this->uri->segment(n)
保护参数位置,但它不起作用。
我尝试通过添加以下内容来更新 routes.php:
$route['myTestClass/(:any)/(:any)/(:any)/(:any)'] = "myTestClass/$1/$2/$3/$4";
但这并没有改变任何东西。
任何的想法?