这是我和CI一起玩的第一天,到目前为止我真的很喜欢它,但有一个我自己无法解决的问题。问题是我需要使用两个控制器功能生成单个视图。一个div应该包含来自表A的ID的选定行,而其他div应该从表B的数组中循环foreach。
public function index()//div A
{
$data['query'] = $this->db->get_where('beer', array('id' => 1));
$this->load->view('corp/corp_view', $data);
}
public function loadList() //div B
{
$data['q'] = $this->db->get_where('list', array('id' => 1));
$this->load->view('corp/mentor_list_view', $data);
}
我尝试通过为loadList()创建另一个视图然后将其包含在主视图中来解决这个问题,例如“$ this-> load-> view()”但我得到的值从index()函数查询表'beer'而不是'list'表中的意图。我再次成为新手,非常感谢你的帮助。
感谢您的帮助。
答案 0 :(得分:2)
感谢额外的信息,我现在可以帮忙。
在Codeigniter中,如果要创建一个用户无法调用的函数,只需在其前面加上“_”。所以在你的情况下:
public function index()//div A
{
$data['query'] = $this->db->get_where('beer', array('id' => 1));
$data['query2'] = $this->_mySecondQuery();
$this->load->view('corp/corp_view', $data);
}
public function _mySecondQuery() //div B
{
return $this->db->get_where('list', array('id' => 1));
}
现在,您可以在索引页面中访问这两个查询。顺便说一句,我不建议在控制器中做很多数据库工作。数据库工作意味着在模型中完成。有关这些内容的详细信息,请参阅:Codeigniter Models