Перечислите свойства объекта, разделенные запятой в CodeIgniter в DataMapper OverZealous Edition - PullRequest
0 голосов
/ 15 ноября 2010

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

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); ?> в представлении.Но таким образом я не могу сделать ссылку, используя идентификаторы группы.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2010
<?php
  $first = true;
  foreach ($student->groups as $group) :
    if (! $first) echo ', ';
    echo anchor("/groups/$group->id", $group->name);
    $first = false;
  endforeach;
?>
0 голосов
/ 22 ноября 2010
<?php echo anchor("/groups/$group->id", $group->name) ?> 

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

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

или отобразить группы пользователей в виде списка:

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

должно стать

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