模板中的未定义变量

问题描述:

每当我加载控制器时,我都会收到未定义的变量。模板中的未定义变量

以下是调用控制器的索引函数(第4行)以及每隔一次出现的相同错误。

<?php 

class Students extends CI_Controller { 

public function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('Student_model'); 
} 

public function index() { 
    $data['view_name'] = 'students/dashboard'; 
    $this->load->view('templates/template_student' , $data); 
} 

} 

和模板其中的误差来自 这是代码的从template_student模板

<ul class="nav navbar-nav navbar-right"> 
<li class=""> 
<a href="javascript:;" class="user-profile dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> 
<?php if ($student->passport_photo == '') { ?> 
<img src="<?php echo base_url(); ?>assets/images/sample.jpg" alt=""> 
<?php } else { ?> 
<img src="<?php echo base_url(); ?><?php echo $student->passport_photo; ?>" alt=""> 
<?php } ?> 
<?php if ($this->session->userdata('logged_in')) : ?> 
<?php echo $this->session->userdata('first_name') . " " . $this->session->userdata('last_name'); ?> 
<?php endif; ?> 
<span class=" fa fa-angle-down"></span> 
</a> 
<ul class="dropdown-menu dropdown-usermenu pull-right"> 
<li><a href="<?php echo base_url(); ?>students/profile"> Profile</a> 
</li> 
<li><a href="<?php echo base_url(); ?>students/logout"><i class="fa fa-sign-out pull-right"></i> Log Out</a> 
</li> 
</ul> 
</li> 
</ul> 

我做了什么不对的一部分的一部分吗?

+0

你传递给你什么数据? –

+0

错误与第四行中的$ student变量 –

+0

第一次没有包含索引函数,对此抱歉。 –

您已经在您的控制器中加载了名为Student的模型,并且在您的模板中您正在访问$ student变量。 这是2件不同的事情。

你应该做这样的事情:

class Students extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('Student_model', 'student'); 
    } 

    public function index() 
    { 
     $student = ... // retrieve the student from db 
     $data['student'] = $student; // define the variable to be sent to the view 
     $this->load->view('templates/template_student' , $data); 
    } 
} 
+0

谢谢,我真的很感激。我的一个朋友给了我他的代码,但我对codeigniter没有任何了解。然后我通过一些教程,再加上你的解释让我明白了事情的真相。 –

变化控制器

<?php 

class Students extends CI_Controller { 

public function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('Student_model'); 
} 

public function index() { 
    $data = array(); 
    $data['view_name'] = 'students/dashboard'; 
    $data['student'] = $this->student_model->get_all(); 
    $this->load->view('templates/template_student' , $data); 
} 

} 

然后,你必须在你的Student_model类添加get_all()函数如下

function get_all() 
     {   
      $this->db->from($this->table); 

      $query=$this->db->get(); 
      if($query->num_rows()>0){ 
        return $query->result_array(); 
       } 
       else{ 
        return array(); 
       } 
     } 

这里$this->table应该是学生表名

现在,我希望你可以检查值passport_photo在你的看法类似的东西存在,或者不

<?php if($student[0]['passport_photo'] == ''){ 
    . 
    . 
    . 

    } ?> 

我希望这有助于5月you..thanks!

+0

它工作的伴侣。你甚至让我的代码更好,谢谢.. –