Пожалуйста, прости меня, я все еще довольно новичок в CakePHP и в процессе восстановления моих избыточных навыков PhP.
Я искал ответ по всему «паутине», к сожалению, безрезультатно.
Вот сценарий:
У меня есть 2 таблицы: 1 - это пользователи, другие группы (для разрешений).
Таблица пользователей - довольно стандартная плюс некоторая дополнительная информация о профиле.
Таблица групп - содержит администраторов, суперпользователей, аутентифицированных пользователей и пользователей, не являющихся пользователями.
Таблица Users используется для аутентификации и профилей (другие пользователи могут просматривать профили пользователей). Имея это в виду, я не могу понять, как отфильтровать, какие пользователи отображаются в представлении индекса, на основании того, к какой группе принадлежат пользователи (а не текущий зарегистрированный пользователь).
Например, профили учетных записей администраторов и суперпользователей отображаются и входят в группы «Администраторы» и «Суперпользователи» соответственно вместе со всеми остальными пользователями. Однако все, что я хочу, чтобы конечные пользователи (Auth Users) могли видеть, это другие профили пользователей, которые являются частью группы Auth Users.
Так что любая помощь будет полезна как для сохранения оставшейся части моих волос, так и для поиска решения этой проблемы, которую я имею.
Хорошо, вот то, что я сделал, работает как шарм. Сконфигурировали переменную paginate, чтобы она выглядела так:
var $paginate = array(
'fields' => array(
'User.img_file', 'User.given_name', 'User.family_name', 'Group.name', 'User.username', 'User.created'),
'limit' => 10,
'order' => array(
'User.given_name' => 'asc'
)
);
Затем для функции in index (которую я хотел) я добавил следующее:
function index() {
$this->User->recursive = 0;
$this->paginate = array(
'conditions' => array(
'group_id' => 3
));
$users = $this->paginate('User');
$this->set(compact('users'));
}
Это работает так, как я хочу, но если что-то выглядит неправильно или это может быть расширено, пожалуйста, оставляйте комментарии.