Определить, является ли префикс администратора истинным из модели - PullRequest
0 голосов
/ 03 февраля 2012

Я сделал собственную функцию afterFind в модели, но я просто хочу, чтобы она выполнялась, если НЕ в режиме администратора.

public function afterFind($results) {
    if(Configure::read('Routing.admin')){
       return $results;
    }else{
       return $this->locale(&$results);
    }
}

Но, похоже, она не работает.Я думаю, что это может быть невозможно.Есть идеи?

Ответы [ 2 ]

4 голосов
/ 03 февраля 2012

проверка на ядре Настройка параметров не имеет смысла для меня. кроме того факта, что этот «Routing.admin» устарел - его Prefix.admin. он сохраняет только те префиксы, которые использует торт.

Если вы действительно хотите, вы можете сохранить информацию в configure :: read () в beforeFilter () вашего AppController и снова прочитать ее из вашей модели. Но для этого нужно что-то, что не противоречит вашим настройкам. Поэтому, если вы используете Prefix, вы, вероятно, могли бы снова использовать Routing:

//beforeFilter - prior to any model find calls!
$isAdmin = !empty($this->params['admin']);
Configure::write('Routing.admin', $isAdmin);

другой вариант, который у вас всегда есть, - передать информацию модели.

1 голос
/ 15 ноября 2013

Router::getParam('prefix', true) дает вам текущее значение префикса запроса.

public function afterFind($results, $primary = false) {
    return Router::getParam('prefix', true) == 'admin' ? $results : $this->locale(&$results);
}

Проверено на Cake 2.4.

...