2010-11-15 4 views
0

У меня есть 2 класса - учащиеся и группы со многими отношениями ко многим. На странице студента я хочу показать все его данные и перечислить все группы, к которым он принадлежит, с запятой. Это мой Студенты контроллер:Список свойств объекта, разделенных запятой в CodeIgniter с DataMapper OverZealous Edition

class Students extends Controller { 

    function __construct() { 
     parent::__construct(); 
    } 

    function index() { 
     $this->get_all_students(); 
    } 

    function get_all_students() { 
     $s = new Student(); 
     $data['students'] = $s->select('id, name, email')->get(); 

     $this->load->view('students', $data); 
    } 

    function view($id) { 
     $s = new Student(); 
     $s->get_by_id($id); 
     $s->groups->get(); 

     $data['student'] = $s; 

     $this->load->view('student_view', $data); 
    } 
} 

я могу получить информацию студента, как это в student_view:

Name: <?php echo $student->name; ?> 
E-mail: <?php echo $student->email; ?> 
Groups: 
<?php foreach ($student->groups as $group) : ?> 
    <?php echo anchor("/groups/$group->id", $group->name) ?> 
<?php endforeach; ?> 

Итак, как я могу перечислить группы с разделителями запятыми? Я попытался добавить имена групп в массив в контроллере, а затем только <?php echo implode(', ', $groups); ?> в представлении. Но таким образом я не могу сделать ссылку с помощью идентификаторов групп.

ответ

0
<?php 
    $first = true; 
    foreach ($student->groups as $group) : 
    if (! $first) echo ', '; 
    echo anchor("/groups/$group->id", $group->name); 
    $first = false; 
    endforeach; 
?> 
0
<?php echo anchor("/groups/$group->id", $group->name) ?> 

должен стать (см запятой в конце строки)

<?php echo anchor("/groups/$group->id", $group->name) ?> , 

или пользовательских отображения групп в виде списка:

должен стать

<ul> 
<?php foreach ($student->groups as $group) : ?> 
    <li><?php echo anchor("/groups/$group->id", $group->name) ?></li> 
<?php endforeach; ?> 
</ul>