如何传递相同的提取数据上我的每一页上codeigniter

vu8f3i0k  于 2023-01-22  发布在  其他
关注(0)|答案(3)|浏览(134)

这是我的控制器代码

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']了。有没有办法从任何页面访问数据?
1.如何在单个视图中多次使用相同的数据。

foreach($avoinics as $avoinics):
             $name=$avoinics->sc_name;

              echo '<li><a href="" title="">'.$name.'</a></li>';

              endforeach;

如果我再次使用它在相同的视图页面,它的播种错误...

ahy6op9u

ahy6op9u1#

是的,您可以:
创建全局数组

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现在是完整的,您可以再次使用,直到您不修改它。

n9vozmp4

n9vozmp42#

一个很好的例子是当你需要为一个特定的控制器调用某些脚本或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);
   }
}
dsekswqp

dsekswqp3#

我建议你用my_controller来扩展ci_controller,并在构造函数中声明你的变量,然后在你的新控制器中扩展my_controller,在那里你将有变量声明。

相关问题