Codeigniter中未定义对象的未定义变量和属性

时间:2018-09-03 10:22:47

标签: php codeigniter

我收到有关这3个变量的以下两条错误消息:

消息1)未定义的变量:行 消息2)试图获取非对象的属性

编辑:(最终找到编辑按钮),因此3个变量是:

        $anatomic_code = $rows->NerveCode;
        $ProxAccess = $rows->ProxAccess;
        $DistAccess = $rows->DistAccess;

在我看来,这是上面的3行给了我两个错误。

我没有包括该模型,因为我认为问题不存在,更多是因为在我之前使用了很多不同的表将数据存储在其中的原因,这归功于开发人员的代码,但是我我准备在需要时发布它。

控制器->

function se_enkel_test()
    {
    $this->freakauth_light->check('submitter');
    $tech_num = $this->uri->segment(6);
    $this->load->model('view_single_test','',true);
    $data['query'] = $this->view_single_test->query();
    $data['query_tech_type'] =  $this->view_single_test->query_tech_type();
    $data['query_parameters'] =  $this->view_single_test->query_parameters();
    $data['query_tech_name'] =  $this->view_single_test->query_tech_name();
    $data['query_test'] =  $this->view_single_test->query_test();
    $data['query_temperat'] =  $this->view_single_test->query_temperat();
    $data['query_semiq'] =  $this->view_single_test->query_semiq();
    $data['query_conclusion'] =  $this->view_single_test->query_conclusion();
    $data['query_side'] =  $this->view_single_test->query_side();

    $this->load->model('mysql_create','',true);
    $data['dropdown_conclusion_diagnosis'] = $this->mysql_create->get_dropdown_conclusion($tech_num);
    $data['dropdown_conclusion_duration'] = $this->mysql_create->get_dropdown_duration_diagnosis();
    $data['dropdown_conclusion_severity'] = $this->mysql_create->get_dropdown_severity_diagnosis();

    $this->load->view('auh/se_enkel_test', $data);
    }

查看->

elseif ($struct_id == "3") {

            foreach($query->result() as $rows):
            if ($rows->NerveCode > 10000 ){
                echo "<h3>N." . $rows->NerveName . ") (" . $side->SideText.")</h3>";        

            }
            else {
                echo "<h3>N." . $rows->NerveName . " (" . $rows->ProxName . " - ";
                    if ($rows->Code < 3000) {
                        echo "m.";
                        }
                    echo $rows->DistName . ") ("  . $side->SideText.")</h3>";
            }
            endforeach;
            $anatomic_code = $rows->NerveCode;
            $ProxAccess = $rows->ProxAccess;
            $DistAccess = $rows->DistAccess;
    }

This is how my page looks now facing the errors, one should be aware there several errors above this page, as stated earlier in the post. but the same two errors for all 3 variables.

This is how the original page used to look.

从这两个屏幕截图中,您可以看到我页面上的问题是我没有得到“线段长度”值和肌肉名称: “腓骨神经(脚踝-指短肌伸肌)(罪过)”

具有“查询”功能的模型->

function query()
{
    $exam = $this->uri->segment(3);    
    $type_id = $this->uri->segment(4);
    $struct_id = $this->uri->segment(5);    
    $technique_id = $this->uri->segment(6);
    $test_id = $this->uri->segment(7);
        switch($type_id)
        {
            case 1:
                $query_input = "SELECT EMUSCLE.*, NERVMUSCACCP.NAME AS MuscleName, NERVMUSCACCP.ShortName AS ShortMuscleName FROM EMUSCLE,NERVMUSCACCP WHERE Exam = ".$exam." AND Struct = ".$struct_id." AND EMUSCLE.MuscleCode = NERVMUSCACCP.Code;";
                break;
            case 2:
                $query_input = "SELECT ENERVE.*, NERVMUSCACCP.NAME AS NerveName, NERVMUSCACCP.ShortName AS ShortNerveName FROM ENERVE,NERVMUSCACCP WHERE Exam = ".$exam." AND Struct = ".$struct_id." AND ENERVE.NerveCode = NERVMUSCACCP.Code;";
                break;
            case 3:
                $query_input = "SELECT NewTable2.*, prox2.Code, prox2.Name AS DistName, prox2.ShortAccPName AS ShortDistName FROM (SELECT NewTable1.*, prox.Name AS ProxName, prox.ShortAccPName AS ShortProxName FROM (SELECT es.*,  NERVMUSCACCP.NAME AS NerveName, NERVMUSCACCP.ShortName AS ShortNerveName FROM ESEGMENT es, NERVMUSCACCP WHERE Exam = ".$exam." AND Struct = ".$struct_id." AND es.NerveCode = NERVMUSCACCP.Code) AS NewTable1 LEFT OUTER JOIN PROXDISTINFO prox ON NewTable1.ProxAccess = prox.Code) AS NewTable2 LEFT OUTER JOIN PROXDISTINFO prox2 ON NewTable2.DistAccess = prox2.Code;";
                break;
            case 4:
                $query_input = "SELECT NewTable1.*, NERVMUSCACCP.NAME AS MuscleName, NERVMUSCACCP.ShortName AS ShortMuscleName FROM (SELECT EJNCTION.*, NERVMUSCACCP.NAME AS NerveName, NERVMUSCACCP.ShortName AS ShortNerveName FROM EJNCTION LEFT OUTER JOIN NERVMUSCACCP ON EJNCTION.NerveCode = NERVMUSCACCP.Code WHERE EJNCTION.Exam = ".$exam." AND Struct = ".$struct_id.") AS NewTable1 LEFT OUTER JOIN NERVMUSCACCP ON NewTable1.MuscleCode = NERVMUSCACCP.Code";
                break;
        }    
    $query = $this->db->query($query_input);

    return $query;
}

1 个答案:

答案 0 :(得分:0)

似乎您实际上并没有将查询结果传递给视图:

$data['query'] = $this->view_single_test->query();

没有看到模型,很难做出有根据的猜测。分配给$ data ['query']的值应该是结果对象。 不是最干净的,但是尝试从模型返回$query->result();并将其分配给控制器中的变量,然后将其传递给视图。