Я настраиваю компонент Auth на «страницу администратора», используя модель пользователей. Но теперь я также хочу создать / настроить Auth для клиентов. Я пытаюсь «переписать» inialize ()
//This is in my ClientsController.php public function initialize() { $this->loadComponent('RequestHandler'); $this->loadComponent('Flash'); $this->loadComponent('Auth', [ 'authenticate' => [ 'Form' => [ 'userModel' => 'clients', 'fields' => ['username' => 'client_email', 'password' => 'client_password'] ] ], 'loginRedirect' => [ 'controller' => 'Clients', 'action' => 'index' ], 'logoutRedirect' => [ 'controller' => 'Clients', 'action' => 'login' ], ]); }
При этом я получаю этот журнал (если использует parent: initalize () получает то же самое)
[RuntimeException] The "Auth" alias has already been loaded with the following config: array (...
Я не хочу создавать «Auth» вручную. Как использовать больше одного Auth?
Благодаря….
Вы не используете несколько экземпляров компонента auth, но просто перенастраиваете его в расширенном контроллере, используя метод config()
компонентов, что-то вроде строк
public function initialize() { parent::initialize(); // ... $this->Auth->config( [ 'authenticate' => [ 'Form' => [ 'userModel' => 'clients', 'fields' => [ 'username' => 'client_email', 'password' => 'client_password' ] ] ], 'loginRedirect' => [ 'controller' => 'Clients', 'action' => 'index' ], 'logoutRedirect' => [ 'controller' => 'Clients', 'action' => 'login' ], ], null, false ); }
См. Также Поваренная книга> Контроллеры> Компоненты> Аутентификация> Параметры конфигурации