Проект Cake php 2.x перенаправляет на неправильный URL-адрес после реализации ACL

Проект My Cake Php перенаправляется на неправильный URL-адрес после того, как я выполнил полную реализацию ACL, следуя этому руководству -> http://book.cakephp.org/2.0/en/tutorials-and-examples/simple-acl-controlled- application / simple-acl-controlled-application.html .

Проблема –

Правильное перенаправление -> localhost / appname /

Перенаправление после того, как я реализовал ACL -> localhost / appname / appname /

Это перенаправление, которое происходит после входа в систему. Публичные страницы (Вход) работают нормально.

Ниже приведен код приложения –

public $components = array( 'Acl', 'Auth' => array( 'authorize' => array( 'Actions' => array('actionPath' => 'controllers') ) ), 'Session' ); public $helpers = array('Html', 'Form', 'Session'); // only allow the login controllers only public function beforeFilter() { parent::beforeFilter(); $this->Auth->allow('login'); } 

Скриншот таблицы Acos Скриншот таблицы Acos Снимок экрана Aros Снимок экрана Aros Снимок экрана Aros_Acos Снимок экрана Aros_Acos
таблица групп
введите описание изображения здесь

routes.php

 Router::connect('/dashboard', array('controller' => 'dashboards', 'action' => 'index')); Router::connect('/login', array('controller' => 'users', 'action' => 'login')); Router::connect('/logout', array('controller' => 'users', 'action' => 'logout')); Router::connect('/', array('controller' => 'dashboards', 'action' => 'index')); Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display')); CakePlugin::routes(); require CAKE . 'Config' . DS . 'routes.php'; 

Правильный url открывался, когда я использовал только «Auth» вместо следующего.

 'Auth' => array( 'authorize' => array( 'Actions' => array('actionPath' => 'controllers') ) ), 

НО, тогда ACL не работает.

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

 public function beforeFilter() { //Configure AuthComponent $this->Auth->loginAction = array( 'controller' => 'users', 'action' => 'login' ); $this->Auth->logoutRedirect = array( 'controller' => 'foo', 'action' => 'bar' ); $this->Auth->loginRedirect = array( 'controller' => 'foo', 'action' => 'bar' ); } 

В вашем случае вы хотите, чтобы вошедший в систему пользователь возвращался на главную страницу, поэтому в этом примере ваша домашняя страница будет определена в app / config / routes.php как действие бара контроллера foo.

В контроллере, где вы определяете действие входа (обычно пользовательский контроллер), вы также можете добавить перенаправление, что-то вроде:

 public function login() { if ($this->request->is('post')) { if ($this->Auth->login()) { // Redirect the user to home return $this->redirect($this->Auth->redirect(array('controller'=>'foo', 'action'=>'bar'))); } } } 

Кажется, вам не хватает компонента ACL в вашем массиве компонентов AppController. Попробуйте обновить его до:

 public $components = array( 'Acl', 'Auth' => array( 'authorize' => array( 'Actions' => array('actionPath' => 'controllers') ) ), 'Session' );