好吧,这不仅仅是奇怪。。。
这是我的代码:
public function results($id,$pattern=3)
{
$this->load->library('session');
if (!$this->session->userdata('logged_in'))
{
$this->session->set_flashdata('return_url',$this->uri->uri_string());
redirect('log/in','refresh');
}
else
{
$this->load->model('projects');
$proj = (array)$this->projects->getProjectById($id);
print_r($proj);
$progressPercentage = number_format((float)( ($proj['progress'] * 100) / $proj['total'] ), 2, '.', '');
}
}
现在,问题来了:
- 当没有
$pattern
被传递到控制器时,整个事情工作正常 当我传递一些参数时,比如
mysite.com/project/results/45/4
(pattern=4),我会得到以下错误:A PHP Error was encountered Severity: Notice Message: Undefined index: progress Filename: controllers/project.php Line Number: 75
奇怪的是,$id
和$pattern
都"读"得很好。
当我在关于undefined index
的行之前print_r
和$proj
时,我得到的结果是:
数组([id]=>21240[电子邮件]=>my@gmail.com[url]=>somewebsite.com[域]=>another_domain[进度]=>198[总计]=>199[别名]=>测试项目#3[状态]=>完成)
正如你自己清楚地看到的,progress
索引就在那里。
那么,问题可能是什么呢?这是什么奇怪的已知CI错误吗?
这就是var_dump($proj,$proj['progress']);
给出的:
array(8) {
["id"]=>
string(5) "21240"
["email"]=>
string(20) "my@gmail.com"
["url"]=>
string(27) "somewebsite.com"
["domains"]=>
string(84) "another_domain"
["progress"]=>
string(3) "198"
["total"]=>
string(3) "199"
["alias"]=>
string(15) "Test Project #3"
["status"]=>
string(8) "complete"
}
string(3) "198"
它应该像:
mysite.com/CONTROLLER/results/45/4