Я получаю список пользователей в виде массива, разбиваю данные на страницы и показываю их в представлении в виде таблицы.
Для перебора массива я использую цикл 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 строк, но значения не отображаются. Что не так с итерацией, которую я использовал? Кто-нибудь может указать на мою ошибку? Спасибо!
ОБНОВЛЕНИЕ
Функция контроллера
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()
, пожалуйста. - person Praveen Kumar   schedule 13.06.2017