2010-11-15 2 views
0

J'ai 2 classes - Etudiants et Groupes avec une relation plusieurs-à-plusieurs. Sur une page d'étudiant, je veux montrer tous ses détails et énumérer tous les groupes auxquels il appartient, délimités par des virgules. Ceci est mon contrôleur étudiants:Liste les propriétés d'objet délimitées par une virgule dans CodeIgniter avec 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); 
    } 
} 

Je peux obtenir les détails des élèves comme celui-ci dans 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; ?> 

Alors, comment puis-je la liste des groupes délimités par des virgules? J'ai essayé d'ajouter des noms de groupe à un tableau dans le contrôleur et puis juste <?php echo implode(', ', $groups); ?> dans la vue. Mais de cette façon, je ne peux pas faire un lien en utilisant les identifiants de groupe.

Répondre

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

devrait devenir (voir la virgule à la fin de la ligne)

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

ou groupes d'utilisateurs d'affichage sous forme de liste:

devrait devenir

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