我是codeigniter的新手,可能在php上更好。我有一个从数据库表新闻中检索到的新闻项,它有一个与伙伴表关联的partner_id的外键。我想获得该值并使用它来获取相关的合作伙伴并显示它的信息。这是我最近的尝试。我想我可能会把它变得太难了。所有相关文件如下。提前谢谢。
在模型中,如果在get_news函数中分配$ id_partner,我认为它不会传递给get_partner函数。
news_model.php
public function get_news($slug_news = FALSE)
{
$this->load->helper('array');
if ($slug_news === FALSE)
{
$news_query = $this->db->get('news');
return $news_query->result_array();
}
$news_query = $this->db->get_where('news', array('slug' => $slug_news));
return $news_query->row_array();
global $id_partner;
$id_partner = element('partner_id', $news_query);
}
public function get_partner($id_partner = FALSE){
$partners_query = $this->db->get('partners');
$partners_query = $this->db->get_where('partners', array('id' => $id_partner));
return $partners_query->row_array();
}
视图函数中的$ slug_news不适用于合作伙伴部分(显然)。但我可以有其他功能吗?
controller,news.php
public function view($slug_news)
{
$data['news_item'] = $this->news_model->get_news($slug_news);
$partner_data['partner_listing'] = $this->news_model->get_partner($id_partner);
if (empty($data['news_item']))
{
show_404();
}
$data['title'] = $data['news_item']['title'];
$this->load->view('templates/header', $data);
$this->load->view('news/view', $data);
$this->load->view('news/news_partner', $partner_data);
$this->load->view('templates/sidebar');
$this->load->view('templates/footer');
}
view1,news / view.php
<?php
echo '<img src="/images/'.$news_item['thumb'].'" />';
echo '<h2>'.$news_item['title'].'</h2>';
echo $news_item['text'];
echo $news_item['bus_name'];
?><br>
和view2,news / news_partner.php
<?php
echo '<h2>'.$partner_listing['bus_name'].'</h2>';
echo $partner_listing['address1'];
echo $partner_listing['address2'];
echo $partner_listing['city'];
echo $partner_listing['state'];
echo $partner_listing['phone'];
echo $partner_listing['email'];
?>
答案 0 :(得分:0)
你的模特到处都是。首先,返回后的两行永远不会在get_news中调用。我只是简化模型并进行简单的连接:
public function get_news()
{
$this->db->select('*');
$this->db->from('news');
$q = $this->db->join('partners', 'news.partner_id = partners.id');
return $q->result();
}
答案 1 :(得分:0)
以下是我的代码:
public function get_news($slug_news = FALSE)
{
if ($slug_news === FALSE)
{
$query = $this->db->get('news');
return $query->result_array();
}
$this->db->select('*');
$this->db->from('news');
$query_news = $this->db->join('partners', 'news.partner_id = partners.id');
return $query_news ->result();
}
我也只使用了“view.php”视图。 $ slug_news需要在某处吗?它是如何知道要获得哪一行的?谢谢你的帮助,我遇到了很多麻烦。