好吧,那就更奇怪了……
这是我的代码:
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, '.', '');
    }
}
现在,这是问题:
- 当 NO
$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“读取”得很好。
当我在与此有关print_r的$proj行之前,undefined index我得到的结果是:
数组 ( [id] => 21240 [email] => my@gmail.com [url] => somewebsite.com [domains] => another_domain [progress] => 198 [total] => 199 [alias] => 测试项目#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"