$subjects = $this->Subjects
->find('all', [
'contain'=> [
'Users'
],
'fields'=> [
'Users.username',
'Users.email'
]
])
->hydrate(false)
->toArray();
$this->set('subjects', $subjects);
如何在Subjects控制器的INDEX视图中循环数据以显示如此图像
答案 0 :(得分:1)
我测试了它。 E.g这是你的主题数组。
<?php
$array = array(
0 => array(
'Users'=>
array('name' => 'John Doe',
'email' => 'john@example.com'
)
),
1 => array(
'Users'=>array(
'name' => 'Abs Doe',
'email' => 'jane@example.com'
)
),
);
?>
这是索引文件中的循环。
<table>
<thead>
<th>name</th>
<th>email</th>
</thead>
<tbody>
<?php foreach($array as $subject) :?>
<tr>
<td><?=$subject['Users']['name']?></td>
<td><?=$subject['Users']['email']?></td>
</tr>
<?php endforeach;?>
</tbody>
</table>
它按预期工作。
我不能给你回答。因为,我无法访问您的环境。但是,至少你可以知道哪些代码需要修改。 希望这有帮助。
答案 1 :(得分:1)
vardump的示例结果:
<?php
$array = array(
0 => array(
'math'=>40,
'english'=>40,
'history'=>40,
'science'=>40,
'user_id'=>64
'user'=>
array(
'id' => 6
'name' => 'User',
'email' => 'user1@sample.com'
)
)
);
?>
这是基于您提供的vardump编写的示例代码:
<table>
<thead>
/// Give your table headers
</thead>
<tbody>
<?php foreach($subjects as $subject) :?>
<tr>
<td><?=$subject['math']?></td>
<td><?=$subject['english']?></td>
<td><?=$subject['history']?></td>
<td><?=$subject['science']?></td>
<td><?=$subject['user_id']?></td>
<td><?=$subject['user']['id']?></td>
<td><?=$subject['user']['name']?></td>
<td><?=$subject['user']['email']?></td>
</tr>
<?php endforeach;?>
</tbody>
答案 2 :(得分:0)
先玩一些css。希望这段代码可以帮到你。
您需要对此进行一些更改。
'fields'=> [
'Users.username',
'Users.email',
//add more fields that you want to display here
]
<table>
<thead>
<th>math</th>
<th>english</th>
<th>history</th>
<th>science</th>
<th>id</th>
<th>user_id</th>
<th>username</th>
<th>email</th>
</thead>
<tbody>
<?php foreach($subjects as $subject) :?>
<tr>
<td><?=$subject['Users']['match']?></td>
<td><?=$subject['Users']['english']?></td>
<td><?=$subject['Users']['history']?></td>
<td><?=$subject['Users']['science']?></td>
<td><?=$subject['Users']['id']?></td>
<td><?=$subject['Users']['user_id']?></td>
<td><?=$subject['Users']['username']?></td>
<td><?=$subject['Users']['email']?></td>
</tr>
<?php endforeach;?>
</tbody>
</table>