Как вызывать информацию от одной модели к другой Codeigniter - PullRequest
0 голосов
/ 27 января 2019

Я застрял на этом какое-то время. Не могу понять. Я изучил документацию, попробовал несколько видео и попробовал 10 разных способов, пока ничего не работает. Итак, у меня есть один вид / модель для одной вещи.В этом примере у Destination и у меня есть отдельные файлы для предложений. Контроллеры для обоих находятся в одном файле. Я хочу, чтобы информация, которая находится в месте назначения, также направлялась в предложения. Пожалуйста, помогите, я не могу понять, что яотсутствует: так вот наиболее важные части:

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);  

1 Ответ

0 голосов
/ 27 января 2019

Вам нужно сгенерировать результаты запроса после того, как вы получите их из модели, например: row_array (), эта функция возвращает одну строку результата. вот документация: Генерация результатов запроса попробуйте это:

$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);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...