Как распечатать все данные в таблице 2, связанные с таблицей 1

У меня есть две таблицы пользователей и предметов

у пользователей есть это поле username, id, email и т. д.
у субъектов есть это поле математика, английский, 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
)

Я пытаюсь пр ($ пользователей); в представлении grade.ctp я получил приведенные выше данные, которые правильно содержат поля субъектов. но как напечатать это в представлении grade.ctp

0

Решение

Так как ваши данные в формате объекта,
Вы можете просто сделать это:

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

Ты можешь попробовать уроки блога чтобы быть более знакомым с этим через некоторое время ..

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector