Я строю проект с использованием CakePHP v3.0.
Это мой оригинальный метод beforeFilter внутри контроллера:
public function beforeFilter(Event $event)
{
parent::beforeFilter($event);
$this->Auth->allow('add','logout','authorize');
}
Это работало до тех пор, пока я не установил приложение на другом сервере, и действие «Авторизация» перестало быть доступным без аутентификации.
Единственное решение, которое я нашел, — это поместить действия в массив, например так:
public function beforeFilter(Event $event)
{
parent::beforeFilter($event);
$this->Auth->allow(array('add','logout','authorize'));
}
Если я не понял книгу CakePHP 3, первый случай должен сработать, не так ли?
Какой правильный синтаксис для этой ситуации?
Заранее спасибо.
Я сомневаюсь, что первый вариант действительно сработал, возможно, это была просто удача, и, соответственно, еще одна проблема, которая позволила получить доступ к вашей охраняемой authorize()
действие, как AuthComponent::allow()
Метод принимает только один аргумент, который является либо именем отдельного действия, либо массивом действий.
Итак, короче говоря, несколько действий должны быть переданы как массивы.
Смотрите также
Других решений пока нет …