Фильтры хороши, как в ответе webbiedave, но они могут усложниться, если у вас будет много условной логики.
Другой вариант заключается в том, что вы можете определять методы в контроллере, которые не предназначеныкак действия / представления: это обычный объект PHP после всего.Еще лучше, если вы используете PHP5, вы можете объявить эти методы закрытыми, чтобы их нельзя было принять за действия ...
Например, вы можете определить следующее в вашем контроллере:
private function _populate_dropdowns() {
$this->set('cities', $this->Station->City->find('list'));
$this->set('states', $this->Station->State->find('list'));
}
Затем назовите его в начале любого действия, которое нуждается в этом:
public function add() {
$this->_populate_dropdowns();
// ...
// add code
}
public function edit() {
$this->_populate_dropdowns();
// ...
// edit code
}