如何打印table2中与table1相关的所有数据

How to print all the data in table2 related with table 1

我有两个表 users 和 subjects

users 有这个字段 username,id,email,etc. subjects 有这个字段 math,english, id, user_id,

/UsersController.php/

public function grade($id = null)
    {

       $users = $this->Users->get($id, [
        'contain' => [
            'Subjects'
        ]
      ]);
      $this->set('users', $users);
      $this->set('_serialize', ['user']);
      //pr($users);exit;
    }

/*grade.ctp/

[![<div class="users view large-10 medium-9 columns">
<?php   
//pr($users);exit;
foreach ($users as $user): ?>
    <div class="row">
        <div class="large-5 columns strings">
            <h6 class="subheader"><?= __('Username') ?></h6>
            <p><?= h($user->username) ?></p>
            <p><?php echo $this->user->username;?></p>

        </div>
        <div class="large-2 columns numbers end">
            <h6 class="subheader"><?= __('Id') ?></h6>
            <p><?= $this->Number->format($user->id) ?></p>
        </div>
    </div>
 <?php endforeach; ?>
</div>][1]][1]

当我点击下面的查看成绩数据时,将使用 pr($users)

输出

App\Model\Entity\User Object
(
    [username] => Tyra
    [password] => 97a8afcf419cc231e1bdcd8584b0a246
    [id] => 6
    [email] => tyra@gmail.com
    [profile_pic] => Resource id #196
    [destination] => 
    [created] => 
    [subjects] => Array
        (
            [0] => App\Model\Entity\Subject Object
                (
                    [math] => 100
                    [english] => 100
                    [history] => 100
                    [science] => 100
                    [id] => 11
                    [user_id] => 6
                    [[new]] => 
                    [[accessible]] => Array
                        (
                            [*] => 1
                        )

                    [[dirty]] => Array
                        (
                        )

                    [[original]] => Array
                        (
                        )

                    [[virtual]] => Array
                        (
                        )

                    [[errors]] => Array
                        (
                        )

                    [[repository]] => Subjects
                )

        )

    [[new]] => 
    [[accessible]] => Array
        (
            [*] => 1
        )

    [[dirty]] => Array
        (
        )

    [[original]] => Array
        (
        )

    [[virtual]] => Array
        (
        )

    [[errors]] => Array
        (
        )

    [[repository]] => Users
)

我尝试 pr($users);在 grade.ctp 视图中,我得到了上面的数据,它包含主题字段是正确的。但是如何在 grade.ctp 视图

中打印它

由于您的数据是对象格式, 你可以简单地这样做:

<?php
    echo $users->username; // prints username
    echo $users->email;
?>

并打印主题:

<?php 
  if(!empty($users->subjects)) {
      foreach($users->subjects as $subject) {
         echo $subject->math; // prints math
         echo $subject->english; // etc
      }
  }
?>

你可以试试blog tutorials过段时间熟悉这些..