CakePHP: фильтрация результатов foreach в таблице

140
16

Я повторяю через таблицу компаний и пользователей, чтобы показывать мои компании с их соответствующим администратором и автором.

Однако моя фильтрация неправильная, я использую роль $user-> для проверки быстрее, чем просмотр базы данных и сравнение. И я получаю некоторых авторов в моей колонке admin и наоборот.

foreach ($ компании как компания) {?> id?> ">

                     <td><?= $company->name?></td>
<td><?= $company->city?></td>
<td><?= $company->group?></td>

<?php foreach ($company->users as $user) {?>
<?php
if($user->role == 'admin'){
?>
<td><?= $user->lastname?> <?= $user->firstname?> <?= $user->role?></td>
<?php

}
if($user->role == 'author'){?>
<td><?= $user->lastname?> <?= $user->firstname?> <?= $user->role?></td><?php
}
}

}

Как я могу правильно фильтровать в своем втором foreach, чтобы все админы попадали в колонку администратора и авторы в колонке автора?

Спасибо

спросил(а) 2021-01-27T22:46:26+03:00 4 месяца, 3 недели назад
1
Решение
118

Исправлено, добавив foreach:

 foreach ($companies as $company) {?>
<tr class='clickable-row' data-href="companies/edit/<?= $company->id?>">

<td><?= $company->name?></td>
<td><?= $company->city?></td>
<td><?= $company->group?></td>

<?php foreach ($company->users as $user) {?>
<?php
if($user->role == 'admin'){
?>
<td><?= $user->lastname?> <?= $user->firstname?></td>
<?php

}
}?>
<?php foreach ($company->users as $user) {?>
<?php

if($user->role == 'author'){?>
<td><?= $user->lastname?> <?= $user->firstname?> </td><?php
}
}

}

ответил(а) 2021-01-27T22:46:26+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема