cakephp3- foreach循环迭代失败

时间:2017-06-13 06:42:19

标签: php arrays foreach cakephp-3.0 cakephp-3.x

我将用户列表作为数组提取并对数据进行分页并将其作为表格显示在视图中。

要迭代数组,我使用foreach循环。但是我的foreach循环迭代不起作用。

这是我做print_r()时的示例数组 我有idemailfull_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; 
}

注意:此查找程序功能位于CompanyUsersTableCompanyUsersTable与用户有关系。所以我将UsersTableCompanyUsersTable一起离开,并获取该公司下的用户列表。

1 个答案:

答案 0 :(得分:2)

试试这个

<?php foreach ($userList as $user): ?>
<tr>
    <td><?php echo($user->_matchingData['Users']->id); ?></td> 
</tr>
<?php endforeach; ?>

OR

您可以分享用于获取记录的代码吗?