我将用户列表作为数组提取并对数据进行分页并将其作为表格显示在视图中。
要迭代数组,我使用foreach循环。但是我的foreach循环迭代不起作用。
这是我做print_r()
时的示例数组
我有id
,email
和full_name
字段,我想在视图中显示
Cake\ORM\ResultSet Object
(
[items] => Array
(
[0] => App\Model\Entity\Role Object
(
[_matchingData] => Array
(
[Users] => App\Model\Entity\User Object
(
[id] => 1
[email] => johndoe@doe.com
[full_name] => John Doe
[[new]] =>
[[accessible]] => Array
( [*] => 1 )
[[dirty]] => Array
( )
[[original]] => Array
( )
[[virtual]] => Array
( )
[[errors]] => Array
( )
[[invalid]] => Array
( )
[[repository]] => Users
)
)
[[new]] =>
[[accessible]] => Array
( [*] => 1 )
[[dirty]] => Array
( )
[[original]] => Array
( )
[[virtual]] => Array
( )
[[errors]] => Array
( )
[[invalid]] => Array
( )
[[repository]] => Roles
)
)
)
这是我迭代数组的视图的一部分。
结果存储在$userList
中。
在这个数组中总是有多个用户,所以我使用foreach循环。
<?php foreach ($userList as $user): ?>
<tr>
<td><?php echo($user->id); ?></td>
<td><?php echo($user->email); ?></td>
<td><?php echo($user->full_name); ?></td>
</tr>
<?php endforeach; ?>
在我看来,行已生成但我没有看到数组值。如果阵列中有五个用户,则会生成5行,但不会显示值。 我使用的迭代有什么问题? 谁能指出我的错误? 谢谢!
更新
控制器功能
public function view()
{
$this->loadComponent('Prg');
$this->Prg->commonProcess();
$params = $this->Prg->parsedParams();
//Listing members
$this->paginate = [
'limit' => 25,
'finder' => ['UsersList' =>['filter'=> $params]],
'extraOptions' =>[
'params' => $params
]
];
$usersList = $this->paginate($this->CompanyUsers);
$this->set('usersList', $usersList);
$this->set('_serialize', ['usersList');
}
模型功能
public function findUsersList(Query $query, array $options)
{
$query
->select(['Users.id','Users.email','Users.full_name'])
->leftJoinWith('Users');
return $query;
}
注意:此查找程序功能位于CompanyUsersTable
。 CompanyUsersTable
与用户有关系。所以我将UsersTable
与CompanyUsersTable
一起离开,并获取该公司下的用户列表。
答案 0 :(得分:2)
试试这个
<?php foreach ($userList as $user): ?>
<tr>
<td><?php echo($user->_matchingData['Users']->id); ?></td>
</tr>
<?php endforeach; ?>
OR
您可以分享用于获取记录的代码吗?