私は配列としてユーザーのリストを取得し、データをページ設定し、ビューとしてテーブルとして表示します。cakephp3- foreachループの反復が失敗しました
配列を反復するには、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] => [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人いる場合、5行が生成されますが、値は表示されません。 私が使用した反復で何が問題になっていますか? 誰かが私の間違いを指摘できますか? ありがとう!
UPDATE
コントローラ機能
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
と参加し、その会社の下のユーザーのリストを取得しました。
'h()'機能を確認してください。 –
h()はechoの略語です。 @Praveen Kumar – Annabelle