【问题标题】:How to call information from one model to another Codeigniter如何将信息从一个模型调用到另一个 Codeigniter
【发布时间】:2026-01-28 09:55:01
【问题描述】:

我一直坚持这个问题。想不通。我重新制作文档,尝试了几个视频并尝试了 10 种不同的方法,但没有任何效果。所以我有一个视图/模型来做一件事,在这个例子中,目的地和我有单独的报价文件。两者的控制器都在一个文件中。我希望目的地中的信息也可以转到报价。请帮助我不知道我是什么失踪: 所以这里是最重要的部分:

destination_model.php

<?php class Destination_model extends CI_Model

{
        public function getDestinationDetails($slug) {

        $this->db->select('
            id,
            title,
            information
        ');
        $this->db->where('slug', $slug);
        $query =  $this->db->get('destinations')->row();


        if(count($query) > 0)
        {
            return $query;
        }
        else
        {
            // redirect(base_url());
        }
}

public function getOffersByDestination($destination_id)
{

    $this->db->select('
            o.short_title,
            o.price,
            o.currency,
            o.information,
            o.long_title_slug,
            oi.image,
            c.slug as parent_category
    ');

    $this->db->from('offers o');
    $this->db->join('offers_images oi', 'oi.offer_id = o.id', 'left');
    $this->db->join('categories c', 'c.id = o.category');
    $this->db->group_by('o.id');
    $this->db->where('o.destination', $destination_id);
    $this->db->where('o.active', '1');
    return $this->db->get();

} }

然后我在控制器中输入了这个:

$this->load->model('frontend/destination_model');
$this->params['destination'] = $this->destination_model->getOffersByDestination($data->id);

我只需要标题和有关目的地的信息。 这是优惠的整个控制器:

                            $data = $this->slugs_model->getOfferDetails(strtok($this->uri->segment(2), "."));

                $this->load->model('frontend/offers_model');
                                                                                $this->load->model('frontend/destination_model');
                $this->params['main']       = 'frontend/pages/offer_details';

                $this->params['title']      = $data->long_title;
                $this->params['breadcumb']  = $this->slugs_model->getSlugName($this->uri->segment(1));
                $this->params['data']       = $data;
                $this->params['images']     = $this->slugs_model->getOfferImages($data->id);
                $this->params['similar']    = $this->slugs_model->getSimilarOffers($data->category, $data->id);
                $this->params['destination'] = $this->destination_model->getOffersByDestination($data->id);
                $this->params['offers']     = $this->offers_model->getImportantOffers($data->offers, $data->category, $data->id);  

【问题讨论】:

    标签: codeigniter model-view-controller codeigniter-3


    【解决方案1】:

    从模型中获取查询结果后,需要生成查询结果, 例如:row_array(),此函数返回单个结果行。 这是文档:Generating Query Results 试试这个:

    $this->load->model('frontend/destination_model');
    $data['destination'] = $this->destination_model->getOffersByDestination($data->id)->row_array();
    $this->load->view('view_name', $data);
    

    在你看来echo $destination['attribut_name'];, 或者你可以打印数组,看看它是否有效print_r($destination);

    【讨论】:

    • 如何在offer_details中回显以查看destinatinon的信息为例?
    最近更新 更多