如何在codeigniter中包含一个文件

时间:2017-01-10 14:22:41

标签: php codeigniter codeigniter-2 codeigniter-3

Hy,我的网站上有一个页面,上面有酒店名称。这是酒店页面的代码。

这是我的控制器:

function country_holiday(){
    $data['hotels']= $this->Travel->holiday();
    $this->load->view('hotels', $data);
}

这是我的模特:

function holiday(){
    $this->db->select();
    $this->db->from('holidays_hotel_2');
    $this->db->order_by('rand()');
    $this->db->limit(16);   
    $query= $this->db->get();                   
    return $query->result_array();
}

我在酒店页面上获取所需数据并且工作正常,我想将此酒店页面包含在我的另一页(热门程序)中。

我想用那个酒店放在热门的节目页面,但除了酒店页面的html之外没有显示任何细节。我应该怎么做。任何想法??

2 个答案:

答案 0 :(得分:0)

据我所知,您希望将酒店页面包含在热门页面中。这意味着您要在另一个视图中调用视图。是的,你可以。

在你的控制器中,

function country_holiday(){
    $data['hotels']= $this->Travel->holiday();
    $this->load->view('hotelling', $data);
}

在您的视图中(hotelling.php),

<html>
  <head>
    <title></title>
  </head>
  <body>
     <?php $this->load->view('hotels', $hotels); ?>
  </body>
</html> 

但我不确定这样做的缺点。但它会奏效。

答案 1 :(得分:0)

我认为您希望将控制器包含在另一个控制器中,就像继承一样,这样您就可以自动使用父控制器功能而无需编写额外的代码。因此,您只需使用父控制器扩展控制器并且需要它在子控制器中的路径,您可以使用$ this来使用它们的功能。

require('application/controllers/Hotel.php'); /*You have to define the path of the file*/
class Hotelling extends Hotel  /*Then your hotelling controllers extends hotel controller*/
{
    public function index()
    {
        $data = $this->country_holiday();
    }
}