CodeIgniter: добавление $ subresult к объекту $ result с помощью идентификатора результата ActiveRecord - PullRequest
2 голосов
/ 03 ноября 2010

У меня проблемы с добавлением «подрезультата» к результату в Codeigniter. Не уверен, как добавить к этому объекту.


$result->{$record_id}->threads = $threads;

должно быть примерно таким

$result->1->threads = $threads;

но я не могу заставить его работать ... Я не новичок в ООП, но я пытаюсь это сделать впервые.

<?php

function get() {

 $this->db->select(array(

  'record_id',  'record_data',  'record_date',

 ));

 $this->db->from('records');

 $sql   = $this->db->get();
 $records  = $sql->result();

 foreach($records as $record){

  $record_id = $record->record_id;

  $this->db->select(array(

   'thread_id',   'thread_parent',   'thread_data',    'thread_date',

  ));

  $this->db->from('records_thread');
  $this->db->where(array(

   'thread_recordid'  => $record_id,

  ));

  $sql   = $this->db->get();
  $threads = $sql->result();

  # this is where i'm having issues \/

  $records->{$record_id}->threads = $threads;

 }

 return $records;

}
?>

Я не хочу использовать массивы, и эти данные проще использовать в файле представления.

Ответы [ 2 ]

3 голосов
/ 03 ноября 2010

Я думаю, вам просто нужно:

$record->threads = $threads;

РЕДАКТИРОВАТЬ:

Вам просто нужно назначить ссылку в вашем foreach (обратите внимание на & рядом с $record):

foreach($records as &$record)
{
    //...
    $record->threads = $threads;
}

return $records;
0 голосов
/ 03 ноября 2010

Если метод, показанный rojoca, не работает, вы можете сделать это:

$records = $sql->result_array();

Затем выполните цикл, как обычно (за исключением do $record_id = $record['record_id'] вместо $record->record_id), и обратитесь к вашей строкенапример:

$records[$record_id]['threads'] = $threads;

Хотя вы, возможно, и не захотите так сильно полагаться на этот столбец record_id, всегда идеально совпадающий с вашим индексом итерации.

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