cakephp3- การวนซ้ำ foreach ล้มเหลว

ฉันกำลังดึงรายชื่อผู้ใช้เป็นอาร์เรย์และแบ่งหน้าข้อมูลและแสดงในมุมมองเป็นตาราง

ในการวนซ้ำอาร์เรย์ ฉันใช้ foreach loop แต่การวนซ้ำ 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] => [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
                )
        )
)

นี่คือส่วนหนึ่งของมุมมองที่ฉันวนซ้ำอาร์เรย์ ผลลัพธ์ถูกเก็บไว้ใน $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 และดึงรายชื่อผู้ใช้ภายใต้บริษัทนั้น


person version 2    schedule 13.06.2017    source แหล่งที่มา
comment
โปรดตรวจสอบฟังก์ชัน h() ของคุณ   -  person Praveen Kumar    schedule 13.06.2017
comment
h() เป็นชวเลข cakephp สำหรับ echo @ปราวีน กุมาร   -  person version 2    schedule 13.06.2017


คำตอบ (1)


ลองสิ่งนี้

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

OR

คุณสามารถแบ่งปันรหัสที่คุณใช้เพื่อรับบันทึกได้หรือไม่?

person Vivek D.    schedule 13.06.2017
comment
ฉันได้เพิ่มฟังก์ชันคอนโทรลเลอร์และเครื่องมือค้นหาแล้ว คุณสามารถดูพวกเขาได้ไหม? คำตอบของคุณใช้งานได้ แต่ฉันไม่รู้ว่าทำไม _matchingData ถึงเข้ามาในอาร์เรย์ @วิเวก ดี. - person version 2; 13.06.2017
comment
ฉันเชื่อว่า _matchingData ควรปรากฏเมื่อคุณใช้ฟังก์ชัน ->matching() เท่านั้น นี่ไม่ได้แสดงไว้ที่นี่ ซึ่งทำให้ฉันคิดว่าคุณไม่ได้รวมโค้ดสำคัญบางส่วนไว้ด้วย - person Greg Schmidt; 14.06.2017