Перечислите свойства объекта, разделенные запятой в CodeIgniter в DataMapper OverZealous Edition.
У меня есть 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 ответа
Решение
<?php
$first = true;
foreach ($student->groups as $group) :
if (! $first) echo ', ';
echo anchor("/groups/$group->id", $group->name);
$first = false;
endforeach;
?>
<?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>