使用 DataMapper OverZealous Edition 列出 CodeIgniter 中以逗号分隔的对象属性

发布于 2024-10-02 11:18:57 字数 1091 浏览 0 评论 0原文

我有 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);
  }
}

我可以在学生视图中获取这样的学生详细信息:

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

那么,如何列出以逗号分隔的组?我尝试将组名称添加到控制器中的数组中,然后只需 在视图中。但这样我就无法使用组 ID 建立链接。

I have 2 classes - Students and Groups with many-to-many relationship. On a student page, I want to show all his details and list all groups he belongs to, delimited by comma.
This is my Students controller:

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);
  }
}

I can get student's details like this in 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; ?>

So, how can I list groups delimited by comma? I tried adding group names to an array in the controller and then just <?php echo implode(', ', $groups); ?> in the view. But this way I cannot make a link using group IDs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月静好 2024-10-09 11:18:57
<?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>
<?php echo anchor("/groups/$group->id", $group->name) ?> 

should become ( see the comma at the end of the line )

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

or display user groups as a list :

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

should become

<ul>
<?php foreach ($student->groups as $group) : ?>
  <li><?php echo anchor("/groups/$group->id", $group->name) ?></li>
<?php endforeach; ?>
</ul>
无所的.畏惧 2024-10-09 11:18:57
<?php
  $first = true;
  foreach ($student->groups as $group) :
    if (! $first) echo ', ';
    echo anchor("/groups/$group->id", $group->name);
    $first = false;
  endforeach;
?>
<?php
  $first = true;
  foreach ($student->groups as $group) :
    if (! $first) echo ', ';
    echo anchor("/groups/$group->id", $group->name);
    $first = false;
  endforeach;
?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文