2

У меня есть много разных таблиц отношений; Сообщения и категории. У одной должности может быть много категорий. Мой вопрос в том, как я могу показать список сообщений с их категориями?Codeigniter Datamapper many to many list

Как что:

Мой пост 1 (cat1, cat2, cat3)
Мой пост 2 (cat2, cat3)
Мой пост 3 (cat1)

Я пробовал эти методы;

// Create post object 
$p = new Post(); 

// Get 30 posts 
$p->get(30); 

// Loop through all posts 
foreach ($p as $post) 
{ 
    // Get the current user's group 
    $post->category->get(); 

    foreach($post->category as $category) { 
     // ... 
    } 
} 

Не нравится, потому что, если я получить 30 сообщений, то на каждом почтовом цикле снова сделать запрос и найти категорию снова и снова.

и попытался это:

$p = new Post(); 

$p->include_related('category', array('id', 'name'), TRUE, TRUE)->get(30); 

foreach($p as $post) { 
    // ... 
    foreach($post->category as $category) { 
    // ... 
    } 
} 

Это более близко, но это одна проблема, я установка предела get(30) поэтому, если мой пост на есть 2 категории, чем показать 15 сообщение + 15 категорий.

Что такое истинный метод для многих во многих списках?

ответ

0

Ну, в этом случае я сделаю выбор для кэширования обеих таблиц в ассоциативных массивах php, а затем зациклирует только массивы.