Я использую плагины CakeDC Users & ACL в своем приложении CakePhp. У меня есть разные роли для моих пользователей в моем приложении, и я хотел бы иметь панель различий, основанную на ролях после входа в систему. Я расширяю плагин своей собственной таблицей и контроллером на основе документации здесь , поэтому у меня есть MyUsersController и MyUsersTable, которые переопределяют исходные файлы плагина, UsersController и UsersTable. Все отлично работает Я создаю событие в моем файле events.php, который содержит:
use CakeDC\Users\Controller\Component\UsersAuthComponent;
use Cake\Event\Event;
use Cake\Event\EventManager;
EventManager::instance()->on(
UsersAuthComponent::EVENT_AFTER_LOGIN,
['priority' => 99],
function (Event $event) {
if ($event->data['user']['role_id'] === 'bbcb3031-ebed-445e-8507-f9effb2de026') //the id of my client role{
return ['plugin' => 'CakeDC/Users', 'controller' => 'MyUsers', 'action' => 'index', '_full' => true, 'prefix' => false];
}
}
);
Но похоже, что переопределение не работает, потому что у меня ошибка:
Error: CakeDC/Users.MyUsersController could not be found.
В моем URL у меня есть / users / my-users вместо / my-users, и я не знаю почему. У меня есть тест с файлом шаблона, который включает в плагин и контроллер пользователей, как это:
function (Event $event) {
if ($event->data['user']['role_id'] === 'bbcb3031-ebed-445e-8507-
f9effb2de026') //the id of role{
return ['plugin' => 'CakeDC/Users', 'controller' => 'Users', 'action' => 'profile';
}
И это работает. Мой URL перенаправляется после входа в систему как клиент / профиль.
Может ли кто-нибудь помочь мне понять? Пожалуйста, скажите мне, если это не достаточно ясно, и если отсутствуют части кода, которые могут быть важны для понимания моей проблемы.
Я уточняю, что я новичок в Cake:)
Спасибо в