before filter () не вызывается?
Я добавил функцию для проверки языкового параметра в свой AppController
function beforeFilter(){
if(Configure::read('Config.language') == 'ara'){
$this->layout = 'rtl-layout';
} else {
$this->layout = 'ltr-layout';
}
}
Но это не работает в других моих контроллерах ?
class ImagesController extends AppController {
var $name = 'Images';
var $helpers = array('TinyMCE');
function beforeFilter(){
if(!isset($this->params['admin'])) {
$this->Session->setFlash(__('Access denied.', true));
$this->redirect(array('controller'=>'users','action'=>'login','admin'=>false));
exit();
}
}
function index() {
$this->Image->recursive = 1;
$this->set('images', $this->paginate());
}
}
Пожалуйста, помогите мне, это сводит меня с ума.1 ответ:
Я забыл вызвать базовый класс '
beforeFilter()
, так как я перегружал его в моемImagesController
class ImagesController extends AppController { var $name = 'Images'; var $helpers = array('TinyMCE'); function beforeFilter(){ parent::beforeFilter(); // <-- here if(!isset($this->params['admin'])) { $this->Session->setFlash(__('Access denied.', true)); $this->redirect(array('controller'=>'users','action'=>'login','admin'=>false)); exit(); } } function index() { $this->Image->recursive = 1; $this->set('images', $this->paginate()); } }