cakephp3- iterasi loop foreach gagal

Saya mengambil daftar pengguna sebagai array dan membuat halaman data dan menampilkannya dalam tampilan sebagai tabel.

Untuk mengulangi array, saya menggunakan loop foreach. Tapi iterasi loop foreach saya tidak berfungsi.

Berikut adalah contoh array ketika saya melakukan print_r() Saya memiliki bidang id, email dan full_name yang ingin saya tampilkan dalam tampilan

Cake\ORM\ResultSet Object
(
    [items] => Array
        (
            [0] => App\Model\Entity\Role Object
                (
                    [_matchingData] => Array
                        (
                            [Users] => App\Model\Entity\User Object
                                (
                                    [id] => 1
                                    [email] => [email protected]
                                    [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
                )
        )
)

Ini adalah bagian tampilan di mana saya mengulangi array. Hasilnya disimpan di $userList. Selalu ada lebih dari satu pengguna dalam array ini jadi saya menggunakan loop 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; ?>

Dalam pandangan saya, baris dihasilkan tetapi saya tidak melihat nilai array. Jika ada lima pengguna dalam array, 5 baris dihasilkan tetapi nilai tidak ditampilkan. Apa yang salah dengan iterasi yang saya gunakan? Adakah yang bisa menunjukkan kesalahan saya? Terima kasih!

PEMBARUAN

Fungsi Pengontrol

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');
}

Fungsi model

public function findUsersList(Query $query, array $options)
{
    $query
    ->select(['Users.id','Users.email','Users.full_name'])
                ->leftJoinWith('Users');
    return $query; 
}

Catatan: Fungsi pencari ini ada di CompanyUsersTable. CompanyUsersTable memiliki hubungan dengan pengguna. Jadi saya keluar dari UsersTable dengan CompanyUsersTable dan mengambil daftar pengguna di bawah perusahaan itu.


person version 2    schedule 13.06.2017    source sumber
comment
Harap tinjau fungsi h() Anda.   -  person Praveen Kumar    schedule 13.06.2017
comment
h() adalah singkatan cakephp untuk gema. @Praveen Kumar   -  person version 2    schedule 13.06.2017


Jawaban (1)


Coba ini

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

OR

Bisakah Anda membagikan kode yang Anda gunakan untuk mendapatkan catatan?

person Vivek D.    schedule 13.06.2017
comment
Saya telah menambahkan fungsi pengontrol dan pencari. Bisakah Anda melihatnya? Jawaban Anda berhasil tetapi saya tidak tahu mengapa _matchingData masuk ke dalam array. @Vivek D. - person version 2; 13.06.2017
comment
Saya percaya bahwa _matchingData seharusnya hanya ada saat Anda menggunakan fungsi ->matching(). Itu tidak ditampilkan di mana pun di sini, yang membuat saya berpikir bahwa Anda belum menyertakan beberapa bagian kode penting. - person Greg Schmidt; 14.06.2017