В моем приложении нет проблем с использованием user_id из beforeRender (если вы используете Auth-Component).
Вы можете использовать его с $this->Auth->user('id')
.
Я бы сделал это следующим образом: проверьте AppController, если пользователь вошел в систему. Если он есть, извлеките нужную информацию из базы данных (или везде, откуда вы получаете информацию) и сохраните ее в переменной с именем * 1006. * например.
Если пользователь не вошел в систему, $dropdown
будет false
.
Теперь вы сделаете эту переменную доступной для представления с помощью $this->set(compact('dropdown'))
Теперь в вашем макете (это важно для вас на каждой странице) вы можете легко проверить, является ли $dropdown
ложным или нет. Если нет, вы можете работать с вашей переменной и показывать пользователю желаемый выпадающий список.