cakephp: проверить действие контроллера в модели (beforeSave) - PullRequest
1 голос
/ 29 января 2012

Существует ли простой способ проверить в модели, какое действие использовалось в контроллере для доступа к функции beforeSave()?

Я хочу иметь другое поведение, если beforeSave() был вызван edit против Если он был вызван add.

В качестве обходного пути я использовал скрытое поле в своей форме, но я думаю, что это не самый эффективный способ.

Большое спасибо.

Ответы [ 3 ]

1 голос
/ 30 января 2012

Вы всегда можете использовать свои $this->params['controller'] и $this->params['action']

0 голосов
/ 20 марта 2015

Я нашел это в stackoverflow при поиске в Google:

Router :: getParams ()

Вывод этого в модели будет:

array(5) {
  ["plugin"]=>
  NULL
  ["controller"]=>
  string(12) "cashflowrows"
  ["action"]=>
  string(5) "chart"
  ["named"]=>
  array(0) {
  }
  ["pass"]=>
  array(0) {
  }
}
0 голосов
/ 29 января 2012

Не знаю, правильно ли я понимаю.

function beforeSave() {
  if (!$this->id && !isset($this->data[$this->alias][$this->primaryKey])) {
    // insert
  } else {
    // edit
  }
  return true;
}
...