在视图文件 codeIgniter 中使用 $this

using $this in view file codeIgniter

我是 CI 的新手,我有一些问题

我有如下控制器

public function show_admin()
 {
  $data['data_admin'] = $this->M_Admin->get_admin();
  $data['page'] = 'show_admin';

  
  $this->load->view('admin/template',$data);
 }

然后我的视图文件夹中有模板,如下所示

<body>
  <div id="wrapper">
   <div id="header">
    <?php 
     $data['session'] = $this->session->all_userdata();
     $this->load->view('admin/header',$data);?>
   <div id="content">
    
    <?php 
   

    $this->load->view('admin/'.$page);?>
   </div>
   <div id="footer">
    <?php $this->load->view('admin/footer');?>
   </div>
  </div>
 </body>

和下面的 show_admin(查看文件)

<div id="isi_content">
     <span><a href="c_add_admin"><img src="<?php echo base_url();?>assets/admin/images/add.png">Tambah</a></span>
     <table class="table table-hover table-bordered">
      <tr>
       <th>No</th>
       <th>Nama</th>
       <th>Username</th>
       <th>Login Terakhir</th>
       <th>Aksi</th>
      </tr>
      <?php
      $no=1;
      
      foreach($data_admin as $admin){
       $id = $admin['id_admin'];
       $url = site_url('admin/C_Admin/c_delete_admin');
       echo 
       '<tr>
        <td>'.$no.'</td>
        <td>'.$admin['nama_admin'].'</td>
        <td>'.$admin['username'].'</td>
        <td>'.$admin['tgl_last_visit'].'</td>
        <td class=aksi><a href='.site_url('admin/C_Admin/c_edit_admin/'.$admin['id_admin'].'').'><img src='.base_url().'assets/admin/images/edit.png></a>
         <a href=# onclick="return delete_data('.$id.',\''.$url.'\')"> <img src='.base_url().'assets/admin/images/delete.png></a></td>
       
       </tr>';
       $no++;
      }
      
      
      ?>
     </table>
    </div>

并且代码 运行 很好,

codeIgniter 在视图文件中使用 $this 是否正常?

我对此感到困惑.. 谢谢你的回答...

不,您不应该使用那个 session 变量,也不应该在另一个视图上加载任何视图。这一切都应该在控制器中完成。你可以做的是将你的代码分成几部分,比如一个视图文件中的页眉和另一个视图文件中的页脚,然后你可以像这样将它们加载到你的控制器中:

public function show_admin()
{
    $data['data_admin'] = $this->M_Admin->get_admin();
    $data['page'] = 'show_admin';
    $head_data['session'] = $this->session->all_userdata();
    $this->load->view('header', $head_data);
    $this->load->view('admin/template',$data);
    $this->load->view('footer');
}