如何在codeigniter上的每个页面上传递相同的获取数据

时间:2015-09-12 21:51:11

标签: php codeigniter

这是我的控制器代码

 public function index()
{
    $this->load->model("mod_home");
    $data['avoinics'] = $this->mod_home->getAvoinics();
    $data['dir']="home";
    $data['page']="index";
    $this->load->view('main',$data);
}

换另一页

 public function about()
{
    $this->load->model("mod_home");
    $data['avoinics'] = $this->mod_home->getAvoinics();
    $data['dir']="home";
    $data['page']="about";
    $this->load->view('main',$data);
}
  1. 但我不想再次发送$ data [' avoinics']。有没有办法从任何页面访问数据。

  2. 如何在单个视图中使用相同数据而不是时间。

            foreach($avoinics as $avoinics):
                $name=$avoinics->sc_name;
    
                 echo '<li><a href="" title="">'.$name.'</a></li>';
    
                 endforeach;
    
  3. 如果我在同一个视图页面上再次使用它,播种错误...请帮助我。谢谢你提前。

2 个答案:

答案 0 :(得分:1)

是的,你可以:

创建全局数组

private $data = array();

在构造函数

$this->load->model("mod_home");
$this->data['avoinics'] = $this->mod_home->getAvoinics();

现在你的功能看起来像这样

public function index() {
    $this->data['dir']="home";
    $this->data['page']="index";
    $this->load->view('main',$this->data);
}

对于第二部分,请勿更改变量值

foreach($avoinics as $record){
    echo '<li><a href="" title="">'.$record['name'].'</a></li>';
}

$avoinics现在完好无损。您可以再次使用它,直到您不修改它。

答案 1 :(得分:0)

您可能很容易理解的一个好例子是当您需要为特定控制器调用某些脚本或css文件时。你不会在每一页中调用它,但在构造函数中是的。

class yourController extends CI_Controller
{
   private $data;

   public function __construct()
   {
      $this->data['css'] = array('file1.css', 'file2.css');
      $this->data['js']  = array('jquery.min.js', 'jquery-ui.min.js');
   }

   public function index()
   {
      $this->load->view('yourView', $this->data);
   }

   public function about()
   {
      $this->load->view('yourView', $this->data);
   }
}