Я создал приложение CakePHP, где я создал UsersController
, который обрабатывает все о пользователях. Когда я пытаюсь просмотреть www.mydomain.com
, если я вошел в систему, давайте посмотрим на индекс ( app/View/Pages/home.ctp
). Кроме того, он перенаправляет меня на mydomain.com/users/login
и не может войти в систему.
Я попытался посмотреть AppController.php
, PagesController.php
или app/Config/core.php
и app/Config/routes.php
, но ничего не нашел. Я также UsersController.php
, что мой UsersController.php
не несет ответственности за это.
Я не помню, и я не могу найти, как отключить это. Какой файл должен отвечать за это?
EDIT: моя версия CakePHP – 2.3.
Как правило, вы можете публиковать определенные действия с использованием метода allow()
метода auth .
Создание публичных страниц может потребовать немного больше работы, если вы захотите сделать только определенные страницы общедоступными, так как PagesController
обрабатывает все страницы за одно действие ( display()
). Если это так, то вы можете использовать request->params['pass'][0]
который будет содержать имя страницы, проверить это на список разрешенных страниц, а затем разрешить действие display
с помощью Auth::allow
.
Например, в PagesController
:
public function beforeFilter() { parent::beforeFilter(); $allowedPages = array('home', 'foo', 'bar'); if(isset($this->request->params['pass'][0]) && in_array($this->request->params['pass'][0], $allowedPages)) { $this->Auth->allow('display'); } }
Это позволит просматривать страницы home
, foo
и bar
, не войдя в систему.
Если бы вы хотели сделать все страницы общедоступными, вы могли бы просто использовать Auth::allow
без каких-либо условий, то есть:
public function beforeFilter() { parent::beforeFilter(); $this->Auth->allow('display'); }