CodeIgniter Model array не выдвигает, как ожидалось - PullRequest
1 голос
/ 11 марта 2012

Мой метод модели CodeIgniter захватывает все «случаи» с определенной подкатегорией.Затем предполагается преобразовать их в новый массив с правильными результатами «get_case», но он продолжает возвращать один и тот же элемент массива.Кажется, что каждый отлаживаемый метод, отлаживаемый мной, функционирует сам по себе, но в этой функции я получаю повторяющийся результат.

Вот метод / функция, с которой у меня возникают проблемы ...будь простым

function get_subcategories_cases($subcategory)
    {
    $this->db->order_by('sortorder','asc');
    $this->db->where('subcategoryid', $subcategory);
    $query = $this->db->get('cases');
    $query = $query->result();
    //
    $outputArray = array();
    foreach ($query as $item) {
    array_push($outputArray, $this->get_case($item->id));
    }
    return $outputArray;
    }

вот метод get_case

function get_case($id)
{
//print_r($id);
$this->db->where('id', $id);
$this->db->limit(1);
$query = $this->db->get('cases');
$query = $query->row();
//
$this->id               = $query->id;
$this->sortoder         = $query->sortorder;
$this->surgeonid        = $query->surgeonid;
$this->subcategoryid    = $query->subcategoryid;
$this->age              = $query->age;
$this->gender           = $query->gender;
$this->typeofsurgery    = $query->typeofsurgery;
$this->isactive = $query->isactive;
$this->isfeatured       = $query->isfeatured;
$this->iswarning        = $query->iswarning;
$this->metatitle        = $query->metatitle;
$this->metadescription  = $query->metadescription;
$this->metakeywords     = $query->metakeywords;
$this->casedescription  = $query->casedescription;
$this->photos       = $this->insert_case_photos($query->photos);
//
return $this;
}

1 Ответ

2 голосов
/ 11 марта 2012

Когда вы сохраняете результаты в get_case() в $this, вы сохраняете их в атрибутах модели (объекта), которые имеют область действия вне метода get_case(), так что это может быть связано с этим.

Попробуйте сохранить результат запроса в локальной переменной:

function get_case($id)
{
    //print_r($id);
    $this->db->where('id', $id);
    $this->db->limit(1);
    $query = $this->db->get('cases');
    $case = $query->row();
    //
    $case->photos = $case->insert_case_photos($case->photos);
    //
    return $case;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...