【发布时间】:2017-06-13 06:42:18
【问题描述】:
我正在以数组的形式获取用户列表,并对数据进行分页并将其作为表格显示在视图中。
为了迭代数组,我使用了 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 个用户,则生成 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 与用户有关系。所以我离开了 join UsersTable 和 CompanyUsersTable 并获取该公司下的用户列表。
【问题讨论】:
-
请查看您的
h()功能。 -
h() 是 echo 的 cakephp 简写。 @Praveen Kumar
标签: php arrays foreach cakephp-3.0 cakephp-3.x